在solr中自动完成,具有受欢迎程度

时间:2014-10-10 17:17:00

标签: solr autocomplete lucene popularity

我现在正在使用solr自动完成和搜索功能,我想使用搜索词的流行度来对自动填充建议进行排名。

例如,如果上周搜索“usb”10次,并且上周100次搜索“user”,则在键入“us”时,用户的排名应高于usb。

有没有办法满足这个要求?谢谢

1 个答案:

答案 0 :(得分:0)

简而言之,您需要使用索引时间提升来提升“搜索查询索引”的价值。 - 并定期刷新它。

让您有所有搜索查询的索引。可以使用每个文档的索引时间提升来创建该索引,作为搜索次数的函数。提升因子可能只是搜索的次数。 https://wiki.apache.org/solr/SolrRelevancyFAQ#index-time_boosts

EG。搜索查询 - ' foo',' foo',' bar' ,' bar',' bar' ,' abcd'将被添加到一个新的索引与' foo'提升2,' bar' 3,' abcd'用1。

您可以对此索引进行动态搜索(从开始) - 并在查询中添加预先键入的字符。文档分数反映了索引时间的提升。

EG。 将首先返回评分最高的文档。用户输入' f' - 术语' f *'返回' foo'高于其他人,因为它的指数时间提升了。

我不知道“条款”组件'表现在这里。其得分基于学期频率 - 不基于指数时间提升。

当您累积更多搜索请求时,您必须使用反映较新搜索计数的更新提升值重新编制索引。

EG。如果有新搜索' bar' - 然后你重新索引' bar'提升为4的文件。