我在 solr 中进行了一次搜索,返回了大约 1500 个文档。这些文档基本上都是产品。例如,我的数据集中有一堆女鞋。我的数据集有各种各样的女鞋,但也有一些非常相似的结果,例如,11 号女式耐克运动鞋、10 号女式耐克运动鞋等......现在,当我搜索女鞋时,solr 评分导致其中一组非常相似的结果冒泡到顶部。例如,一个特定鞋款的所有颜色可能都会出现在顶部。它们绝对是不同的产品,但我更愿意获得更多种类的结果,而不仅仅是每种颜色的耐克训练鞋。
有没有人有什么建议?请注意,我不想消除所有单独颜色的产品。当有人搜索蓝色女式耐克运动鞋时,我希望他们将蓝色型号作为最佳结果。我使用 dismax 查询作为我的主要查询。我想做的基本上是提高某种“名称与其他结果相比的唯一性”因素。
您可以在颜色等字段上折叠:
http://wiki.apache.org/solr/FieldCollapsing http://wiki.apache.org/solr/FieldCollapsing
或者您可以在索引时使用近似重复检测:
http://wiki.apache.org/solr/Deduplication http://wiki.apache.org/solr/Deduplication
http://karussell.wordpress.com/2010/12/23/detect-stolen-and-duplicate-tweets-with-solr/ http://karussell.wordpress.com/2010/12/23/detect-stolen-and-duplicate-tweets-with-solr/
后一种算法是在 jetwick 中针对推文实现的,因此它应该适用于标题,但对于大文档来说性能不够(因此仅对“短”字符串进行抄袭检测)。对于长文本,您需要本地敏感哈希:
http://en.wikipedia.org/wiki/Locality_sensitive_hashing http://en.wikipedia.org/wiki/Locality_sensitive_hashing
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)