11

SOLR検索を実装しています。たとえば Richard Chase と入力すると、インデックス内のすべての Richard と、Johnny Chase などのすべての Chase が取得されます。実際には、Richard と Chase の両方に一致するすべての名前のみを返したい場合です。

私の構成設定は

<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>

私のクエリはテキストフィールドを検索します

テキスト:リチャード・チェイス

私が間違っていることは何ですか?

4

4 に答える 4

2

完全一致の場合、solrconfig.xml でクエリ パーサーの mm(Minimum "Should" Match) パラメータを 100% に設定できます。

<str name="mm">100%</str>

これは、クエリで一致する必要がある句の最小数を指定します。または、リクエストのクエリ時にこのパラメーター (q.mm) をオーバーライドできます。

于 2017-01-10T07:30:10.513 に答える