我正在使用solr在网页(ASP.NET MVC)中实现自动建议,并且已经了解有很多方法可以做到这一点,包括:
关于这个的任何好消息?
你应该好好看看https://github.com/evolvingweb/ajax-solr的'AJAX Solr'。
AJAX Solr具有自动完成小部件等功能。演示网站 - http://evolvingweb.github.io/ajax-solr/examples/reuters/index.html。
以下是免责声明,以解决您的需求:
“最快”是一个非常模糊的术语,并且扩展到更广泛的范围,即使用的浏览器,页面权重,网络等。如果需要,这些需要在搜索实现之外进行优化。
我会选择直接实现,然后根据性能统计进行优化
好的,现在到了实施,在高层次:
1)使用具有NGramTokenizerFactory
标记化器的字段创建Solr索引。 - 减少喋喋不休,保持NGram的minLength为2,并用minLength =2
自动提取
2)根据所使用的技术,您可以通过应用程序路由搜索请求,也可以直接命中Solr。直接击中Solr可能会更快(如前所述,参考AjaxSolr)。
3)使用像Jquery-ui这样的东西来实现autosuggest实现,后端带有对Solr的ajax请求。
以下是几个参考实现:
请注意,有类似的实现适用于实时站点,因此我很想尝试这一点,看看是否仍然存在瓶颈,并且不想过早进行优化。
'AJAX Solr'在自动建议方面存在局限性,因为它只提供单词级建议。在内部,它使用分面来生成它们。
但是SOLR提供了不同的建议,我们可以利用这些建议来生成智能自动建议(单词/短语)。查看此博客文章以了解更多信息。 http://lucidworks.com/blog/solr-suggester/
对于实现,您可以使用建议器(FST +分析中缀)和jQuery自动完成的组合。