B树是否适用于自动建议/自动完成Web表单?

时间:2012-01-06 15:46:33

标签: search grails autocomplete autosuggest b-tree

自动建议/完整字段在整个网络上使用。谷歌似乎掌握了它,因为只要在搜索查询中输入一个类型,就会立即返回建议。

我假设实现此目标的框架涉及Web层上的快速内存数据存储。我们正在构建基于零售产品的Grails应用,因此用户可以搜索Can,其中应该建议CanonCancun等内容,并想知道是否有Java B树缓存在内存中就足以快速自动完成作为JSON通过AJAX返回。在jQuery AutoComplete字段之外,是否存在任何框架和/或库以促进此解决方案的开发?

2 个答案:

答案 0 :(得分:3)

自动填充是一种文本匹配,信息检索问题。实现自己的B树并编写自己的逻辑以将单词与其他单词匹配是您可以做的事情。但是,您必须实施Porter StemmingVector Space ModelString-edit distance calculation

...或者你可以使用Lucene及其派生词,它们已经做了很多这样的事情。如果你真的关心用于存储这些东西的数据结构,你可以深入了解它的来源。但是我非常怀疑自己编写自己并且从长远来看,这样做会更加可维护和高效。

其中一个比较受欢迎的Grails生态系统插件是Searchable,在Ledbrook&史密斯的Grails in Action。它使用了Lucene,并且可以很容易地为您的域类添加全文搜索。 (例如,查看GinA中的第8章或可搜索的文档)。

答案 1 :(得分:1)

Grails Richui插件具有我过去使用过的自动填充功能。我们已经把它连接到每次按键击中数据库(我不建议,但我们的数据经常变化,需要实时数据)。如果您的事物列表非常静态,那么它可能适合您。

http://grails.org/plugin/richui#AutoComplete