【问题标题】:solr stopwords not workingsolr 停用词不起作用
【发布时间】:2016-10-17 23:02:54
【问题描述】:

需要帮助..

Solr 停用词不适用于“the”“in”“an”等常用词,但适用于“diesel”等其他不常见词。

我可以看到 solr server 中列出了停用词。但是,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>

【问题讨论】:

  • 您在 solr 分析页面中是否也进行过同样的分析?

标签: solr stop-words


【解决方案1】:

您有两个不同的停止过滤器工厂。只需保留一个以使事情变得更好。

然后,使用管理 UI 的分析屏幕查看短语在通过分析器堆栈时会发生什么情况。这应该会告诉您工作是保留还是删除。

最后,您需要仔细检查您正在搜索的字段是否是您认为您正在搜索的字段(而不是 - 例如 - 具有不同分析器的包罗万象的字段)。启用调试应该会显示给您。

【讨论】:

    猜你喜欢
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2015-09-08
    • 2015-12-29
    • 2015-06-05
    • 1970-01-01
    相关资源
    最近更新 更多