我的autosuggest中存在solr停用词问题。所有停用词都由_符号取代。用_符号替换Solr停用词
例如我在文本“deal_title”中有文本“简单文本”。当我尝试搜索单词“simple”solr show me next result“_ simple text _”,但我期望“简单文本”。
有人能解释我为什么这样工作,以及如何解决它? 这里是我的schema.xml中的一部分
<fieldType class="solr.TextField" name="text_auto">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true" outputUnigramsIfNoShingles="false" />
</analyzer>
<analyzer type="query">
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
</fieldType>
<field name="deal_title" type="text_auto" indexed="true" stored="true" required="false" multiValued="false"/>
<fieldType name="text_general" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我使用的最后Solr的版本,这就是为什么我有 4.10.3 luceneMatchVersion>中我的solconfig.xml。看起来我应该降级luceneMatchVersion,因为它不适用于当前版本(4.10.3)。 –
2015-02-13 10:12:56
它不适用于Solr 4.4及更高版本。在Solr5中它将被删除。我试图阻止这一点。 – 2015-02-13 11:01:50
https://issues.apache.org/jira/browse/SOLR-6468 – 2015-02-13 11:19:21