【问题标题】:Solr stopwords showing up in facet search resultsSolr 停用词出现在构面搜索结果中
【发布时间】:2011-08-30 16:03:10
【问题描述】:

我目前正在我的 Solr 架构中的文本字段上测试构面搜索,并注意到我在我的 stopwords.txt 文件中获得了大量结果。

我的架构当前使用文本数据类型的默认配置,我的印象是如果“solr.StopFilterFactory”过滤器正在使用,停用词不会被索引。

我希望有人能对此有所了解,或者 a) 帮助我理解为什么停用词不适用于构面以及如何使用它,或者 b) 为我指明正确的方向,这样我的构面查询就不会'不从停用词返回单词。

谢谢!

【问题讨论】:

  • 你不应该在标记化的字段上分面
  • 嗨,我有同样的问题/情况。我的“关键字”部分合并到一个字段中 - 示例“car/dog/red/be/at”下一个字段:“blue/green/yellow”等。所以我必须使用 tokenizner 将字符串分解为单词:。此外,我使用停用词列表来删除停用词(例如:at、be、...)但是停用词也被索引并存储,并将在 facetet 搜索中返回......使用 Sol 1.3 有什么解决方法吗?

标签: solr facet stop-words facets


【解决方案1】:

停用词确实适用于构面。换句话说:如果您请求已使用停用词索引的字段的构面,则不应在构面中看到任何停用词。

我的猜测是您没有按照您的想法建立索引:要么您的 schema.xml 错误,要么您在与您想象的不同的字段中建立索引。

我在这个领域使用构面并且效果很好:

<fieldType name="text_ws_stop" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.StopFilterFactory"
    ignoreCase="true"
            words="stopwords_spanish.txt"
            enablePositionIncrements="true"
    />
  </analyzer>
</fieldType>

...

<field name="phrases" type="text_ws_stop" indexed="true" stored="true" required="false"/>

【讨论】:

  • 我的文本字段类型使用与默认 solr 3.1 架构相同的(未修改的)声明。 Mauricio(上图)提到标记化字段可能会导致停用词和方面的问题。默认文本字段类型具有空格标记器。关于这是否会导致问题的任何想法?
  • 我正在处理带有停用词的标记化字段并为我工作......我将 schema.xml 部分添加到我的答案中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多