2010-04-21 63 views

回答

15

这取决于你正在查询的字段的配置。

如果索引分析器的配置包含StopFilterFactory,那么停用词不会被索引,因此您以后无法查询它们。但是,由于Solr保留了指数中的条款的位置,您可以指示它增加剩余条款的头寸价值,以反映原来中间存在其他条款的事实。

的“enablePositionIncrements”这里是实现这一目标的关键在于:

<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/> 

如果查询分析器也有相同的设置配置的StopFilterFactory,您的查询应正常工作。

请参阅此链接的详细信息: http://www.lucidimagination.com/search/document/CDRG_ch05_5.6.18

+0

谢谢,这就是我所需要的 – Ruth 2010-04-26 09:36:08

+0

很难找到enablePositionIncrements属性的确切定义。多谢,伙计! – BFree 2011-03-31 18:12:50

2

我也有运气使用CommonGramsFilterFactory实现通过把这个在适当的地方在你的字段类型声明相似的结果已经。

<filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 

不确定它在StopFilterFactory中enablePositionIncrements =“true”启用的效果如何。你还需要运行solr 1.4来使用它。

+0

非常感谢你,这是有用的知道 – Ruth 2010-05-05 09:22:45