Solr停止字替换为uu符号

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

我的autosuggest中的solr stopwords有问题。所有停止字均替换为uu符号

例如,我有文本“交易标题”字段中的“简单文本”。当我尝试搜索单词“simple”时,solr会显示下一个结果“\uSimple text”,但我希望是“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>


要解决此问题,您需要在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
    来删除双空格