elasticsearch ngram匹配对相关性较低的文档给予相同的分数,elasticsearch,match,n-gram,relevance,elasticsearch,Match,N Gram,Relevance" /> elasticsearch ngram匹配对相关性较低的文档给予相同的分数,elasticsearch,match,n-gram,relevance,elasticsearch,Match,N Gram,Relevance" />

elasticsearch ngram匹配对相关性较低的文档给予相同的分数

elasticsearch ngram匹配对相关性较低的文档给予相同的分数,elasticsearch,match,n-gram,relevance,elasticsearch,Match,N Gram,Relevance,我正在我的elasticsearch索引中搜索Bob Smith。结果鲍勃·史密斯和博比·史密斯都以相同的分数回答了问题。我希望Bob Smith有更高的分数,以便它出现在我的结果集中的第一位。为什么分数相等 这是我的问题 { "query": { "query_string": { "query": "Bob Smith", "fields": [ "text_field"

我正在我的elasticsearch索引中搜索Bob Smith。结果鲍勃·史密斯和博比·史密斯都以相同的分数回答了问题。我希望Bob Smith有更高的分数,以便它出现在我的结果集中的第一位。为什么分数相等

这是我的问题

{
    "query": {
        "query_string": {
            "query": "Bob Smith",
            "fields": [
                "text_field"
            ]
        }
    }
} 
下面是我的索引设置。我正在使用此处描述的ngram令牌过滤器:

以下是我查询的结果

"hits": [
  {
    "_index": "contacts_5test",
    "_type": "_doc",
    "_id": "1",
    "_score": 0.69795835,
    "_source": {
      "text_field": "Bob Smith"
    }
  },
  {
    "_index": "contacts_5test",
    "_type": "_doc",
    "_id": "2",
    "_score": 0.69795835,
    "_source": {
      "text_field": "Bobbi Smith"
    }
  }
]

如果我改为搜索Bobbi Smith,elastic将返回两个文档,但Bobbi Smith的分数更高。这更有意义。

我能够重现您的问题,原因是使用了您的
ngram\u过滤器,它不会为
bob
创建任何令牌,因为令牌的最小长度应为
4
,而标准令牌发生器创建
bob
令牌,但随后它会在您提到的
minu gram
as
4
ngram\u过滤器中过滤掉

即使我试着用更少的
minu gram
length到
3
,这将创建令牌,但问题是
bob
bobbie
将具有相同的
bob
令牌,因此它们的得分将相同

当您搜索
Bobbi Smith
时,则
Bobbi
即确切的代币将仅出现在一个文档中,因此您会得到更高的分数


注意:-请使用和来检查生成的代币以及这些代币如何匹配,这将帮助您了解问题和我的详细解释,我的

是否有办法调整ngram过滤器,以便在搜索“Bob”时让Bobbi显示在结果中?你的意思是
Bobbi
不出现在搜索结果中或分数较低?@GNG,这也像是一个新的要求,我尝试过,但不容易实现,请你投票接受这个答案,因为它提供了你寻求的答案,并在这里询问另一个问题和评论,我将对此进行调查。
"hits": [
  {
    "_index": "contacts_5test",
    "_type": "_doc",
    "_id": "1",
    "_score": 0.69795835,
    "_source": {
      "text_field": "Bob Smith"
    }
  },
  {
    "_index": "contacts_5test",
    "_type": "_doc",
    "_id": "2",
    "_score": 0.69795835,
    "_source": {
      "text_field": "Bobbi Smith"
    }
  }
]