text というフィールドで「population」という用語を照会する場合:
.../solr/select?q=text:(pop*)
"population" という単語を含む結果を返します。
ただし、アスタリスクの前に 5 文字以上ある場合は、何も返されません。
.../solr/select?q=text:(popula*)
ただし、これは機能します。
.../solr/select?q=text:(population)
これもそうです(理由はわかりません):
.../solr/select?q=text:(popul)
アスタリスクがないと、5 文字のみが機能し、全文が機能します。
「population」に限らず、他の単語も同様のようです(「numerator」を試してみました)。
5 文字の制限があるのはなぜですか?
ダウンロードしたsolrのバージョンからあまり変更していません。
フィールド「テキスト」のタイプは「text_en_splitting」です。
"text_en_splitting" には 2 つのアナライザーがあり、1 つはタイプが "index" で、もう 1 つはタイプが "query" です。どちらにも触れていません。
クエリ アナライザーは次のようになります。
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.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.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
インデックス アナライザーは同じように見えますが、「solr.SynonymFilterFactory」フィルターがありません。