避免SOLR中的关键字填充

时间:2017-10-11 14:14:16

标签: solr keyword

我正在寻找一种限制SOLR中“关键字填充”效果(或消除它)的方法。 (我们目前正在运行SOLR 6.2.0服务器)。 我已经尝试过设置omitTermFreqAndPositions =“true”,但是当我这样做时,一些查询会引发短语查询错误(特别是使用搜索词如G1966B进行查询 - 可能是由于单词拆分等)。我可以走下去禁用单词分裂的道路,并试图避免短语查询错误,但这只是搞砸了比我想要解决的更多的东西。

有人对如何限制单个字段中多个关键字匹配的影响有任何建议吗?

示例:如果我们有一个类似这样的描述字段:

  

BrandX 1200系列G1924B LC / MSD SL XBC系统。   此BrandX 1200系列G1924B(G 1924 B,G1924 B,G 1924B)LC / MSD SL XBC>系统状况良好。

当有人搜索“G1924B”时,我想避免将此文档评分更高,因为它恰好有几次G1924B(或其变体)。 理论上,有人可以在他们的描述中多次重复关键字,试图欺骗系统将搜索结果排在更高的位置。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这似乎比最初想象的更频繁。 如果删除术语频率和位置,则会丢失短语搜索功能。

我建议写一个忽略TF(Term Frequency)的自定义相似度。 目前,默认BM25考虑了TF。 您可以选择该类并调整相似度微积分,将TF视为常数。

e.g。

org.apache.lucene.search.similarities.BM25Similarity.BM25DocScorer#得分

[1] org.apache.lucene.search.similarities.BM25Similarity