自动建议/完整字段在整个网络上使用。谷歌似乎掌握了它,因为只要在搜索查询中输入一个类型,就会立即返回建议。
我假设实现此目标的框架涉及Web层上的快速内存数据存储。我们正在构建基于零售产品的Grails应用,因此用户可以搜索Can
,其中应该建议Canon
,Cancun
等内容,并想知道是否有Java B树缓存在内存中就足以快速自动完成作为JSON通过AJAX返回。在jQuery AutoComplete字段之外,是否存在任何框架和/或库以促进此解决方案的开发?
答案 0 :(得分:3)
自动填充是一种文本匹配,信息检索问题。实现自己的B树并编写自己的逻辑以将单词与其他单词匹配是您可以做的事情。但是,您必须实施Porter Stemming,Vector Space Model和String-edit distance calculation。
...或者你可以使用Lucene及其派生词,它们已经做了很多这样的事情。如果你真的关心用于存储这些东西的数据结构,你可以深入了解它的来源。但是我非常怀疑自己编写自己并且从长远来看,这样做会更加可维护和高效。
其中一个比较受欢迎的Grails生态系统插件是Searchable,在Ledbrook&史密斯的Grails in Action。它使用了Lucene,并且可以很容易地为您的域类添加全文搜索。 (例如,查看GinA中的第8章或可搜索的文档)。
答案 1 :(得分:1)
Grails Richui插件具有我过去使用过的自动填充功能。我们已经把它连接到每次按键击中数据库(我不建议,但我们的数据经常变化,需要实时数据)。如果您的事物列表非常静态,那么它可能适合您。