我现在正在使用solr自动完成和搜索功能,我想使用搜索词的流行度来对自动填充建议进行排名。
例如,如果上周搜索“usb”10次,并且上周100次搜索“user”,则在键入“us”时,用户的排名应高于usb。
有没有办法满足这个要求?谢谢
答案 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的文件。