ここには 2 つの問題があります。
- まず、Solr で独自の fieldType を作成し、"@" と "*" をストップワードとして使用しないように構成する必要があります。
schema.xml で次のようにします。
<types>
<fieldType name="myTextFieldType" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
</analyzer>
</fieldType>
</types>
次に、「PackageTag」フィールドにその fieldType を使用する必要があります。
<field name="PackageTag" type="text_en_splitting"
" *
" 文字は Lucene クエリ (ワイルドカード) の特殊文字でもあるため、クエリでエスケープする必要があります。*
" " に置き換えることで " "をエスケープできます\*
。このようなもの:
PackageTag:bla\*
「bla*」を含むフィールドを検索します。