0

私は次のフィールドタイプを持っています:

<fieldType name="textfield" class="solr.TextField" positionIncrementGap="100"> 
  <analyzer type="index">
    <charFilter class="solr.HTMLStripCharFilterFactory"/>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.TrimFilterFactory"/>
    <filter class="solr.LengthFilterFactory" min="3" max="30"/>
    <!-- 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.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1"
            catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LengthFilterFactory" min="3" max="30"/>
    <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1"
            catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
</fieldType>

私が抱えている問題は、引用符を使用してフレーズを検索すると、結果が引用符がない場合と同じになることです
。8は "abc. 8"
と同じ結果を表示します。 また、ピリオドでテキストも分割できますか?

つまり、クエリ テキストが引用されているときにフレーズを検索したいだけです。どうも。

4

1 に答える 1

0

LengthFilterFactory最小長 3 の a をアナライザーに組み込みました。トークンの8長さは 1 であるため、そのフィルターによってインデックスとクエリの両方から除外されます。クエリ構文は正しいです。両方の用語がインデックス化されている場合は、指定したとおりにフレーズ クエリが実行されます。

于 2013-07-24T01:47:54.830 に答える