使用Solr搜索.如何包含其他人搜索到的内容



使用Solr 7.5.0除了侧面搜索,我还想返回其他人一直在搜索的内容。例如,在亚马逊上,当你搜索某个东西时,会有一个区块显示。查看此项目的客户还查看了。。。我的类似于说客户还搜索。。。

提供建议的简单方法是使用build IN MLT(更像这样(功能:https://lucene.apache.org/solr/guide/7_5/morelikethis.html

这会返回类似文档中的id。但是,这并不是一个基于搜索其他人的建议。您必须根据其他用户"点击"的相关内容来订购文档(例如MLT结果列表(。也许,重新排名功能对您来说很有趣:https://lucene.apache.org/solr/guide/7_4/learning-to-rank.html

最后,你必须找出,其他人在搜索类似的术语后打开了什么文档ID。所以,如果一个人搜索"蓝色汽车",另一个用户搜索"蓝色的汽车",他们会得到(可能或没有(不同的文档。

你必须对搜索词进行聚类,你必须存储和计算哪些文档是相对于搜索词单击的。这意味着,每次点击一个文档都应该更新您的文档统计信息。此文档统计数据是您查找和排名推荐的基础。

这意味着,solr中没有内置功能,它提供了这一切。但是,您可以使用一些solr内置功能来实现自己强大的推荐功能。

您必须自己实现。Solr不保留任何内部日志,以记录人们搜索到的内容,您可以自动查询这些内容。

如果您将日志记录级别设置为INFO,Solr将包括日志文件中的每个查询,因此您可以尝试解析该查询,并且至少知道人们搜索了什么。它不会让你深入了解人们看到了哪些文档,点击了什么,或者他们进入了哪些其他相关项目。

要实现这样的功能,您需要自己执行日志记录,并跟踪为每个查询显示的项目,并尝试在对象之间建立良好的相关性。有很多方法可以做到这一点,但它们涉及推荐引擎、机器学习、数学等。在你选择的搜索引擎上搜索推荐引擎,开始你的冒险之旅,并以此为基础。Lucene Solr Revolution也有许多关于这个主题的演示,例如,任何人都可以使用Solr构建推荐引擎。

最新更新