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>

我遇到的问题是,当使用引号搜索短语时,结果与没有引号相同,所以如果我搜索让我们说:
abc。8
将显示与
“abc. 8”相同的结果
句号也可以拆分文本吗?

换句话说,我只想在引用查询文本时搜索短语。谢谢。

4

1 回答 1

0

您已将LengthFilterFactory最小长度为 3 的 a 合并到分析器中。标记8的长度为 1,因此该过滤器将从索引和查询中删除。您的查询语法是正确的,如果两个词都被索引,则将按照您的指定执行短语查询。

于 2013-07-24T01:47:54.830 回答