私は solr で複数単語の同義語を実装しようとしています。具体的には、
msc divina => divina
したがって、ユーザーが「msc divina」と入力すると、solr は「divina」のみの結果を返す必要があります。
schema.xml の定義は次のようになります。
<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms_de.txt"
ignoreCase="true"
expand="false" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords_de.txt"
enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="1" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords_de.txt" />
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords_de.txt"
enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
splitOnCaseChange="1" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords_de.txt" />
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
</analyzer>
</fieldType>
うまくいきません。クエリ アナライザーに類義語フィルターを追加すると、"msc divina" で検索すると、"msc および "divina" のすべてのヒットが返されます。
どうすればこれを解決できますか?