我正在使用solr 1.4和solr 4进行文本内的全文搜索。 目前我无法搜索整个短语,比如文本块中的“狗跑”:“狗穿过房子。” 对于这个测试用例,我使用一个简单的solr URL:http://plocalhost:8088/solr/select/?start=0&q=“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>
我不知道,为什么它不起作用。 :-( ...谢谢你的暗示。
答案 0 :(得分:2)
回答我自己的问题:
索引时间的分析器使用停用词列表,而分析器在查询时间不使用停用词列表。所以索引中的短语与查询时的短语不一样。
我只需要在“query”-analyzer中添加StopFilterFactory。