荷蘭語和德語語言確實有可以合併爲新詞單詞的詞;複合詞。Solr複合詞詞形標記器 - 結果視爲OR語句
例如,「accountmanager」被視爲一個單詞,由單詞「account」和「manager」組成。我們的用戶將在文檔和查詢中使用「accountmanager」和「account manager」,並期待兩個查詢的結果相同。
爲了能夠元分解(分割)的話,solr的具有我在架構中配置了一個字典濾波器:
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="../../compound-word-dictionary.txt" minWordSize="8" minSubwordSize="4" maxSubwordSize="15" onlyLongestMatch="true"/>
的化合物字-dictionary.txt文件包含單詞列表用於分解複合詞。在這個列表中,您將找到例如「帳戶」和「經理」等字樣。
該邦元分解結果是正確的,當Solr的調試分析與查詢 「的AccountManager」 搜索時: (項文本):
- 的AccountManager
- 帳戶
- 經理
但是,此結果被視爲OR語句,並查找至少包含其中一個條款的所有文檔。我希望它的行爲像一個AND語句(所以我只需要在文檔中同時包含術語「帳戶」和「經理」的結果)。
我已經嘗試將架構中的defaultOperator設置爲「AND」,但在使用edismax時忽略此操作。因此,我已將擬建的Min-should-Match設置爲100%(mm = 100%),同樣沒有任何所需的結果。調整架構中字典過濾器的屬性不會將行爲更改爲「AND」。
當使用字典複合詞標記工廠並知道解決方案讓它像AND語句一樣行事時,是否有人遇到過這種行爲?
謝謝您的解釋。清楚地回答DictionaryCompoundWordTokenFilterFactory的行爲。我曲解了它的使用,並且現在看到它在這種情況下不會滿足我的需求。 你建議的提示實際上是我的下一步(使用solr.SynonymFilterFactory)。我希望能夠簡化與複合詞過濾器工廠結合使用的同義詞過濾器。 –