solr停止词不起作用

时间:2016-06-16 12:18:48

标签: solr stop-words

需要帮助..

Solr Stopwords不适用于像“an”中的“the”这样的常用词,但它适用于“柴油”等其他不常用词。

我可以看到停用词在solr服务器中列出。但是,solr搜索不会阻止它们。

{
  "responseHeader":{
    "status":0,
    "QTime":1},
  "wordSet":{
    "initArgs":{"ignoreCase":"true"},
    "initializedOn":"2016-06-16T12:13:20.69Z",
    "managedList":["in",
      "the"]}}

这是我的schema.xml。谁能告诉我可能是什么问题。

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.ManagedStopFilterFactory" managed="en" />
        <filter class="solr.SynonymFilterFactory" ignoreCase="true" synonyms="synonyms.txt"/>
        <filter class="solr.WordDelimiterFilterFactory"
                generateWordParts="1" generateNumberParts="1" catenateWords="1"
                catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1"/>
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

您有两个不同的Stop过滤工厂。只要留一个就能让事情变得更好。

然后,使用管理界面的“分析”屏幕查看短语在通过分析器堆栈时会发生什么。这应该会告诉你作品是保留还是放弃。

最后,您需要仔细检查您搜索的字段您认为正在搜索的字段(而不是 - 例如 - 具有不同分析器的全部捕获字段)。启用调试应该向您显示。