2011-02-25 55 views
2

我在solr中搜索返回大约1500个文档。这些文件基本上是产品。例如,我的数据集中有一堆女鞋。我的数据集为女性提供了各种各样的鞋子,但它也有一些非常相似的结果,例如,大小为11的女性,现在,当我搜索女鞋时,导致这些结果的某一组泡沫到顶部,这些结果都非常相似。例如,一个特定鞋型的所有颜色可能会达到顶部。他们绝对是不同的产品,但我宁愿获得更多的结果,而不仅仅是耐克教练鞋的每种颜色。在solr结果输出中减少类似的最高结果

有没有人有任何建议?请注意,我不想消除所有单独着色的产品。当有人搜索蓝色女装耐克运动鞋时,我希望他们能够获得蓝色模特作为最佳成绩。我使用dismax查询作为我的主要查询。我想要做的是基本上提高某种“与其他结果相比名称的唯一性”因素。

回答

2

,你可以在喜欢的颜色或使场要么崩溃:

http://wiki.apache.org/solr/FieldCollapsing

,或者你可以使用近重复检测时索引:

http://wiki.apache.org/solr/Deduplication

http://karussell.wordpress.com/2010/12/23/detect-stolen-and-duplicate-tweets-with-solr/

后者算法在jetwick中用于推文,所以它应该适用于t itles,但对于大文档不够高效(所以只能对'short'字符串进行抄袭检测)。对于长文本,您需要本地敏感哈希:

http://en.wikipedia.org/wiki/Locality_sensitive_hashing