在ElasticSearch中,删除的停用词继续对得分产生很小的影响

时间:2013-01-23 15:54:32

标签: lucene elasticsearch

基本匹配查询:Billy Sue

测试匹配查询#1:Billy Sue和

测试匹配查询#2:Billy和Sue

我们最终在Base和#1之间得分相同,但Base和#2的得分相似且不同。

使用analyze API,两个测试查询都删除了停用词and,但是基本查询和测试查询#2之间的Sue的start_offset和end_offset标记属性不同。

基本上,记录剩余令牌之间的预停字移除距离,并对得分产生小而有限的影响。

问题

有没有办法延迟计算令牌的start_offsetend_offset属性,直到删除停用词后,或以其他方式阻止删除的停止词影响得分?< / p>

1 个答案:

答案 0 :(得分:3)

也许在停用词过滤器上禁用position increments看看是否有帮助?特别是如果您的映射在停用词过滤器之后有某种过滤器,您将从位置增量中获得奇怪的伪像

E.g。像这样的东西:

"analyzer": {
   "analyzer_example":{
      "tokenizer":"standard",
      "filter":["standard", "lowercase", "filter_stop"]
    }
},
"filter": { 
   "filter_stop":{
      "type":"stop",
      "enable_position_increments":"false"
    }
}