2011-05-22 82 views
2

我目前正在测试我的Solr架构中的文本字段上的方面搜索,并注意到我得到的stopwords.txt文件中有大量的结果。solr停用词显示在方面搜索结果

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

我希望有人能够阐明这一点,或者a)帮助我理解停用词为什么不适用于方面以及如何适应它,或者b)指向正确的方向,这样我的方面查询不要从停用词中返回单词。

谢谢!

+1

你不应该在小切分领域 – 2011-05-22 21:54:33

+0

嗨,我有同样的问题/情形。我的“关键字”被部分合并为一个字段 - 例如“car/dog/red/be/at”下一个字段:“蓝/绿/黄”等。因此,我必须使用tokenizner将字符串制成字词:< tokenizer class =“solr.PatternTokenizerFactory”pattern =“/”/>。此外,我使用停用词列表来删除停用词(如:at,be,...)但停用词也被索引并存储,将在facetet搜索中返回...使用Sol 1.3有没有解决方法? – 2011-06-15 11:42:18

回答

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"/> 
+0

我的文本字段类型使用默认solr 3.1模式附带的相同(未修改)声明。 Mauricio(上文)提到,标记字段可能会导致与停用词和方面有关的问题。默认的文本字段类型有一个空白标记器。对这是否会导致问题有任何想法? – 2011-05-24 03:27:14

+0

我正在使用停用词标记字段,并为我工作......我将schema.xml部分添加到了我的答案中 – 2011-05-27 20:04:24