我的Android应用程序中的SQLite选择与排错

问题描述:

我需要从SQLite数据库中选择数据。但是,我有一个搜索字段,用户可以在其中输入位置的名称。因为他们可能错误地输入这个名字,我需要能够根据这个从数据库中提取相关的记录。我的Android应用程序中的SQLite选择与排错

例如:

输入:摩天Whrrl

实际:摩天轮

应该尽管错字正确定位的摩天轮项目。我意识到editdist3没有在Android SQLite中实现。我宁愿不选择整个数据库到RAM中并遍历所有字符串,并手动计算Levenshtein距离,因为这将是超级资源密集型的。

任何帮助将不胜感激! :)

+0

尝试使用LIKE运算符。 –

+0

LIKE运算符并不能帮助您逼近拼写错误:/ – ashiswin

+1

您可以使用LIKE运算符来快速减少潜在匹配,然后使用更小的集合,这正是@BernoulliGate可能会遇到的问题。 –

这里您需要创建一个AI系统来猜测正确的单词。我认为这与SQL或Android无关。

或者您可以使用在线AI系统来猜测正确的单词。

我认为你能做的最好的事情就是实现一个自动建议功能,就像现在所有的搜索引擎一样。

您可以实现动态算法,在输入新字母时根据需要搜索和缓存值。但是,如果您只是在没有任何外部服务的帮助下在裸机上进行操作,则您也会遇到资源问题 - 这取决于数据库的大小和其他上下文变量。

有一个合适的索引将有所帮助,但我仍然认为将所有必要的值加载到数组中并且搜索速度更快。