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

时间:2014-11-19 10:48:15

标签: elasticsearch

我的文档的字段product_code包含类似pc00XXa的字符串值,其中X被替换为某个数字1..9。我期待这个短语前缀查询的9个文档的结果:

{
  "query": {
    "match": {
      "_all": {
        "query": "pc001",
        "type": "phrase_prefix"
      }
    }
  }
}

...但结果是空的。使用product_code代替_all,我得到了预期的9个文档。

使用前缀查询而不是词组前缀查询似乎与_allproduct_code字段一样正常工作。以下查询给了我9个文件:

{
  "query": {
    "prefix": {
      "_all": {
        "value": "pc001"
      }
    }
  }
}

Elasticsearch documentation说“match_phrase_prefix与match_phrase相同,不同之处在于它允许在文本的最后一个术语上进行前缀匹配”。在我的情况下,我在查询中只有一个术语,所以我希望它可以作为前缀。

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

0 个答案:

没有答案