我正在尋找一種方法來限制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)設置在架構 –