これは、動的フィールドのタイプフィールドタイプがに設定されていることが原因である可能性がありますstring
。デフォルトでは、以下に示すように、文字列フィールドタイプは、インデックスまたはクエリ時間アナライザーが関連付けられていないため、検索しやすいものではありません。
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
text_general
以下に示すように、フィールドタイプのようなものに変更することをお勧めします。
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
text_generalは、トークン化、小文字化、および追加された値の同義語を提供するため、フィールドのクエリに適しています。ダイナミクスのフィールドタイプを変更せずに同じ利点を得る簡単な方法の1つは、copyFieldを使用して、動的値をtext_general
フィールドタイプまたはクエリに適した他のフィールドタイプにコピーすることです。