【发布时间】:2011-12-12 04:26:03
【问题描述】:
我有一个存储数百或数千个字符串的 SQLite 数据库,我保留了一个我不断增长的这些字符串的数组,以便我可以更轻松地更快地搜索我的数据库。但是,用户可以使用搜索字符串进行搜索,我将在我的数据库中对这些字符串进行排名,以确定它们与搜索字符串的接近程度。例如,假设他们搜索“foo”。如果我的数据库中有条目“foo”“foobar”和“foo foo”,是否有人对按顺序排列这些字符串的算法有任何想法:
1。 “foo”(完全匹配)
2。 "foo foo"(包含两次搜索字符串)
3。 "foobar"(它包含一次搜索字符串)
有没有人知道或有任何想法会产生这种结果的算法?如果有人希望发布任何代码 sn-ps,我正在使用 java 和 c++,但是我真的只是在寻找算法的想法。
注意,我希望 fobar 或 fuo 之类的内容也出现在搜索结果中,因为它与搜索结果相差 1 个字母,
【问题讨论】:
-
norvig.com/spell-correct.html 可能很有趣,但它从一开始就使用完全不同的概念。
-
还有兴趣:stackoverflow.com/questions/7805897/… 来自 2 天前的许多算法
标签: java c++ sql algorithm search