0

我正在使用 solr 1.4 和 solr 4 在文档中进行全文搜索。目前我无法搜索整个短语,例如文本块中的“The dog runs”:“The dog runs through the house”。对于这个测试用例,我使用了一个简单的 solr URL:http://plocalhost:8088/solr/select/?start=0&q= "the dog runs"

我正在使用带有以下选项的标记化、词干化文本文件:

<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords-de.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms-de.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
</fieldType>

我不知道,为什么它不起作用。:-( ...谢谢你的任何提示。

4

1 回答 1

2

回答我自己的问题:

索引时间分析器使用停用词列表,而查询时间分析器不使用停用词列表。因此索引中的短语与查询时的短语不同。

我只需要在“查询”分析器中添加 StopFilterFactory。

于 2011-07-08T12:15:42.730 回答