solr 中的自动完成功能很受欢迎

Posted

技术标签:

【中文标题】solr 中的自动完成功能很受欢迎【英文标题】:Autocomplete in solr with popularity 【发布时间】:2014-12-05 22:27:34 【问题描述】:

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

例如,如果“usb”上周被搜索了 10 次,而“user”上周被搜索了 100 次,那么在输入“us”时,user 的排名应该高于 usb。

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

【问题讨论】:

【参考方案1】:

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

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

例如。搜索查询 - 'foo', 'foo', 'bar' , 'bar', 'bar' , 'abcd' 将被添加到新索引中,'foo' 的提升为 2,'bar' 的提升为 3,' abcd' 与 1。

您可以在该索引上进行动态搜索(以 : 开头) - 并将键入的前置字符添加到查询中。文档分数反映了索引时间的提升。

例如。 : 将首先返回得分最高的文档。用户键入“f”后 - 术语“f*”返回“foo”高于其他术语,因为它具有更高的索引时间提升。

我不知道“术语组件”在这里的行为。它的分数基于词频,而不是基于索引时间提升。

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

例如。如果有一个新的搜索'bar' - 然后你重新索引'bar'文档,提升4。

【讨论】:

以上是关于solr 中的自动完成功能很受欢迎的主要内容,如果未能解决你的问题,请参考以下文章

使用Solr完成自动补全

使用Solr完成自动补全

使用Solr完成自动补全(续)

使用Solr完成自动补全(续)

jQuery 中的自动完成功能只是...停止工作?

PhpStorm 中的 TailwindCSS 自动完成功能不起作用