Solr停止字替换为uu符号
我的autosuggest中的solr stopwords有问题。所有停止字均替换为uu符号 例如,我有文本“交易标题”字段中的“简单文本”。当我尝试搜索单词“simple”时,solr会显示下一个结果“\uSimple text”,但我希望是“simple text” 有人能给我解释一下为什么会这样,以及如何修复它吗? 这是我的schema.xml的一部分Solr停止字替换为uu符号,solr,solrj,stop-words,spring-data-solr,Solr,Solrj,Stop Words,Spring Data Solr,我的autosuggest中的solr stopwords有问题。所有停止字均替换为uu符号 例如,我有文本“交易标题”字段中的“简单文本”。当我尝试搜索单词“simple”时,solr会显示下一个结果“\uSimple text”,但我希望是“simple text” 有人能给我解释一下为什么会这样,以及如何修复它吗? 这是我的schema.xml的一部分 <fieldType class="solr.TextField" name="text_auto"> <ana
<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>
要解决此问题,您需要在solconfig.xml中使用和4.3
我在Solr 6.3中对此的解决方案(其中enablePositionIncrements=“false”
不再可能)是:
删除停止字
用fillerToken=“
”的木瓦(这会移除。
)
移除前导和尾随
删除重复项
<filter class="solr.StopFilterFactory" format="snowball" words="lang/stopwords_de.txt" ignoreCase="true"/>
<filter class="solr.ShingleFilterFactory" fillerToken=""/>
<filter class="solr.PatternReplaceFilterFactory" pattern="(^ | $)" replacement=""/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
我使用的是最新的solr版本,这就是为什么我的solconfig.xml中有4.10.3。看起来我应该降级luceneMatchVersion,因为它不适用于当前(4.10.3)版本。它不适用于Solr 4.4及更高版本。在Solr5中,它将被删除。我正试图阻止这种情况。另外,我还有一个类型为“text_general”(如上所述)的字段,用于使用regex“/.*”+短语+“*/”(通配符)搜索(通配符),它运行良好,但stopwords不适用于此字段(我认为这是因为solr.KeywordTokenizerFactory)。你能推荐一些其他的过滤器吗?你是说从4.4版开始,stopwords就被完全删除了?在Solr版本4.10.3中没有任何方法可以在不降级luceneMatchVersion的情况下实现它们?这是不正确的,因为RemovedUpplicateStokenFilterFactory不会删除具有不同位置的令牌。这在Solr7.6中对我很有效,尽管我添加了一个额外的PatternReplaceFilterFactory
来删除双空格