我正在寻找一种方法来限制SOLR中“关键字填充”的效果(或消除它)。 (我们目前正在运行一个SOLR 6.2.0服务器)。 我试过设置omitTermFreqAndPositions =“true”,但是当我这样做时,有些查询会抛出短语查询错误(特别是使用搜索术语(如G1966B)的查询 - 可能是由于分词等原因)。我可以走下去禁用分词这个词,并尽量避免短语查询错误,但这只会让我想办法修补更多的东西。避免在SOLR中填充关键字
有没有人对如何限制在单场比赛的影响多个关键字的任何建议?
举例:如果我们有一个描述字段是这样的:
BrandX 1200系列G1924B LC/MSD SL XBC系统。 此BrandX 1200系列G1924B(G 1924 B,G1924 B,G 1924B)LC/MSD SL XBC>系统状况良好。
当某人搜索“G1924B”时,我想避免将此文档评分更高,因为它恰好在那里有几次G1924B(或其变体)。 理论上,有人可能会在描述中多次重复关键字,试图欺骗系统将搜索结果排在更高的位置。
有什么建议吗?
谢谢!
感谢的Alessandro。我从来没有做过像写自定义相似的东西,但我会开始探索这个选项。任何提示或在这条路上开始的好地方,将不胜感激。 – user3302110
开发这种新的相似性其实很简单: 让我们假设你从TF/IDF开始(这可能是你的用例的一个很好的假设): 1)编写你的ConstantTfSimilarity来扩展:org.apache.lucene .search.similarities.ClassicSimilarity 例如,你可能只是覆盖公共浮动tf(float freq){ return(float)Math.sqrt(freq); } 2)覆盖org.apache.solr.search.similarities.ClassicSimilarityFactory来回报您的自定义相似 3)设置在架构 –