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

时间:2018-10-29 03:00:15

标签: solr drupal-8

使用Solr 7.5.0 除了构面搜索外,我还想返回其他人一直在搜索的内容。例如,在亚马逊上,当您搜索某些内容时,会显示一个阻止。 浏览过这个产品的用户同样浏览了 ... 我会说类似 客户还搜索了...

2 个答案:

答案 0 :(得分:1)

提供推荐的简单方法是使用内置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。因此,如果某人搜索“蓝色汽车”,而其他用户搜索“蓝色汽车”,他们将获得(也许不选择)不同的文档。

您必须对搜索词进行聚类,并且必须存储和计算相对于搜索词单击的文档。这意味着,每次单击一个文档都应更新您的docs-statistics。此文档统计信息是查找和排名建议的基础。

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

答案 1 :(得分:0)

您必须自己实现。 Solr不会保留任何内部日志来记录人们可以自动查询的内容。

如果将日志记录级别设置为INFO,Solr将在日志文件中包含每个查询,因此您可以尝试解析该查询,至少知道人们在搜索什么。它不会让您洞悉人们在哪里显示哪些文件以及他们点击了什么,或者他们搬进了哪些其他相关项目。

要实现类似的功能,您需要自己执行日志记录,跟踪每个查询显示的项目,并尝试在对象之间建立良好的关联。有很多方法可以做到这一点,但是它们涉及推荐引擎,机器学习,数学等。通过在所选搜索引擎上搜索推荐引擎并以此为基础,开始您的冒险之旅。 Lucene Solr Revolution也提供了许多有关该主题的演示,例如Anyone can build a recommendation engine with Solr