elasticsearch Elasticsearch没有';t在多匹配查询中返回结果,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch Elasticsearch没有';t在多匹配查询中返回结果,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch Elasticsearch没有';t在多匹配查询中返回结果

elasticsearch Elasticsearch没有';t在多匹配查询中返回结果,elasticsearch,lucene,elasticsearch,Lucene,我想知道为什么Elasticsearch没有为以下内容提供任何结果: 但它给了我以下方面的结果: GET /stag/_search { "query": { "multi_match": { "type": "phrase_prefix", "query": "ferran may", "fields": [ "fullName", "fullName.folded" ] } } } 我认为每个单词可能有一个最小字符长

我想知道为什么
Elasticsearch
没有为以下内容提供任何结果:

但它给了我以下方面的结果:

GET /stag/_search
{
  "query": {
    "multi_match": {
      "type":     "phrase_prefix",
      "query":    "ferran may",
      "fields": [ "fullName", "fullName.folded" ]
    }
  }
}
我认为每个单词可能有一个最小字符长度,但后来我看到了以下查询:

GET /stag/_search
{
  "query": {
    "multi_match": {
      "type":     "phrase_prefix",
      "query":    "ignasi t",
      "fields": [ "fullName", "fullName.folded" ]
    }
  }
}

他给了我结果。所以我不知道发生了什么。

似乎问题已经得到了解释

匹配短语前缀查询是穷人的自动完成查询。这是非常重要的 易于使用,让您快速入门 按您键入的内容进行搜索,但其结果通常足够好,可以 有时会令人困惑

考虑查询字符串quickbrownf。此查询通过创建 来自quick和brown的短语查询(即术语quick必须存在 后面必须跟一个术语“棕色”)。然后它会查看排序后的 术语词典,查找以f开头的前50个术语,并添加 将这些术语添加到短语查询中

问题是,前50个术语可能不包括fox so这一术语 “快速棕色狐狸”一词将不会被找到。这通常不是一个好主意 问题,因为用户将继续键入更多字母,直到 他们正在寻找合适的人选

GET /stag/_search
{
  "query": {
    "multi_match": {
      "type":     "phrase_prefix",
      "query":    "ignasi t",
      "fields": [ "fullName", "fullName.folded" ]
    }
  }
}