Flex匹配许多数据库记录(类似Quicksilver或类似Launchy)

Rya*_*ary 7 mysql sql database algorithm search

假设我有一个包含许多名称的数据库表.我想对这些名字进行"灵活匹配".我不确定"弹性匹配"是否适合使用,但现在让我们继续使用.已经有类似 讨论的"模糊匹配",但我不是拼音匹配很感兴趣.我对我称之为有序子集匹配感兴趣.

我希望它的工作类似于QuickSilver(OSX)或Launchy(Windows).以下是给定搜索字符串匹配的几个示例:

麻省理工学院中号 assachusetts nstitute的牛逼李有成
ffox˚F愤怒狐狸
OSX ⇒的Mac OS X
MS中号 ICRO 小号经常总公司

我的最终目标是拥有一个带有自动完成文本字段的网页,该字段是从服务器驱动的数据.

我相信通过结合jQuery LiveUpdate和/或jQuery QuickSelect的功能,我将在客户端获得足够的结果.

我需要帮助的地方在于如何最好地处理服务器端与大型表的Flex匹配.我有一些关于如何使用Quicksilver 评分 算法构建我自己的自定义索引的想法,也许还有一些排列索引逻辑,但如果其他东西可以随时使用,我宁愿不重新发明轮子.

总结: 对于具有多行的数据库表,获得快速弹性匹配的最佳方法是什么?

Rya*_*ary 4

这并没有直接回答我的问题,但对于我正在从事的项目,我意识到我还不需要服务器端组件。为了方便我的 Web 应用程序的客户端,我刚刚启动了两个新的开源项目:

  • LiquidMetal:这是一种类似 Quicksilver 的评分算法,可以根据缩写对字符串进行评分。构建索引时很有用。
  • Flexselect:一个 jQuery 插件,可将选择框变成 Flex 匹配的增量查找控件。可以把它想象成 Quicksilver 被挤进一个选择框。它使用 LiquidMetal 对实时结果进行过滤和排序。