search - B树适合自动建议/自动完成Web表单吗?

标签 search grails autocomplete autosuggest b-tree

自动建议/完成字段在整个网络上使用。 Google似乎已经掌握了它,因为只要在搜索查询中输入一种类型,就几乎可以立即返回建议。

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

最佳答案

自动完成是文本匹配,信息检索的问题。您可以执行自己的B树并编写自己的逻辑以将单词与其他单词匹配。但是随后您将必须实现Porter StemmingVector Space ModelString-edit distance calculation

...或者您可以使用Lucene及其派生词,它们已经做了很多此类工作。如果您真的很在意用于存储这些内容的数据结构,则可以深入了解其来源。但是我高度怀疑自己编写并自己做所有事情从长远来看会更易于维护和高效。

对此最流行的Grails生态系统插件之一是Searchable,它在Ledbrook&Smith的Grails in Action中提到。它在幕后使用了Lucene,使您可以轻松地将全文搜索添加到您的域类中。 (例如,查看GinA的第8章或可搜索的文档)。

关于search - B树适合自动建议/自动完成Web表单吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8760430/

相关文章:

python - 在 3d 数组中查找 2d 数组

java - 缓存 Controller 响应

linux - Log4J 日志消息被记录到 grails 应用程序的应用程序日志和标准输出

ruby-on-rails-3 - Rails 3 中搜索表单的最佳自动完成/建议

emacs - 在 Emacs 中,有没有办法只从一个指定的缓冲区自动完成?

mysql - mysql搜索查询的多个select语句

python - 如何找到与给定范围元组重叠的元组

grails - Grails 3.2.2 spring-security-ui覆盖RegisterController不起作用

jquery - 增加自动完成滚动条的大小

php - MySQL中如何在使用LIKE查询语句的同时使用OR语句