假设我有一个包含许多名称的数据库表。我想对这些名字进行“灵活匹配”。我不确定“弹性匹配”是否适合使用,但现在让我们继续使用。关于“模糊匹配”有similar discussions,但我对语音匹配并不感兴趣。我对我称之为有序子集匹配感兴趣。
我希望它的工作方式类似于QuickSilver(OSX)或Launchy(Windows)。以下是给定搜索字符串匹配的几个示例:
mit ⇒ M 马萨诸塞我 T 技术组织
ffox ⇒ F 狐狸
osx ⇒Mac OS X
ms ⇒ M icro s oft Corporation
我的最终目标是拥有一个带有自动完成文本字段的网页,该字段是从服务器驱动的数据。
我相信通过结合jQuery LiveUpdate和/或jQuery QuickSelect的功能,我会在客户端获得足够的结果。
我需要帮助的地方在于如何最好地处理服务器端与大型表的Flex匹配。我有一些关于如何使用Quicksilver scoring algorithm建立我自己的自定义索引的想法,也许还有一些排列索引逻辑,但如果其他东西可以随时使用,我宁愿不重新发明轮子。
总结: 对于包含多行的数据库表,获得快速弹性匹配的最佳方法是什么?
答案 0 :(得分:4)
这不直接回答我的问题,但对于我正在进行的项目,我意识到我只是 EM>。为了方便我的Web应用程序的客户端,我刚刚启动了两个新的开源项目:
答案 1 :(得分:1)
一种方法就是做LIKE比赛。在每个字符之间加上一个%,然后在字符串之前和之后,并根据它进行搜索。显然,这将为 ms 引入其他内容,例如“ m ultimedia s ystems”,但您可能可能将其与包含的另一个表配对'建议'匹配,并按那些排序。