匹配短语前缀查询中的_all字段

Mik*_*mmi 6 elasticsearch

我的文档product_code包含字符串值的字段,pc00XXa其中where X由一些数字1..9替换.我期待这个短语前缀查询的9个文档的结果:

{
  "query": {
    "match": {
      "_all": {
        "query": "pc001",
        "type": "phrase_prefix"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

......但结果是空的.使用product_code而不是_all,我得到预期的9个文件.

使用前缀查询而不是短语前缀查询似乎与两个_allproduct_code字段一起按预期工作.以下查询给了我9个文件:

{
  "query": {
    "prefix": {
      "_all": {
        "value": "pc001"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Elasticsearch文档说"match_phrase_prefix与match_phrase相同,但它允许在文本的最后一个术语上进行前缀匹配".在我的情况下,我在查询中只有一个术语,所以我希望它作为前缀.

当查询包含单个术语时,短语前缀查询与前缀查询的确有何不同?为什么使用_all比明确指定字段名称更少的结果?