首页 > 解决方案 > 为什么字段列表在新的 search-as-you-type 数据类型中包含原始字段的 2 克和 3 克子字段?

问题描述

我正在浏览最近引入的数据类型的 ES文档search-as-you-type

映射定义如下所示:

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "my_field": {
        "type": "search_as_you_type"
      }
    }
  }
}

这是查询的样子:

GET my-index-000001/_search
{
  "query": {
    "multi_match": {
      "query": "brown f",
      "type": "bool_prefix",
      "fields": [
        "my_field",
        "my_field._2gram",
        "my_field._3gram"
      ]
    }
  }
}

myfield._2gram现在,我不明白为什么我们需要myfield._3gram明确提及?myfield当在字段列表中指定时,ES 不应该在这些子字段中匹配吗?

如果我有多个字段,例如 , firstName, lastNamebio那么我是否应该像上面的查询一样为每个字段提及 2-gram 和 3-gram 字段?

标签: elasticsearchelastic-stack

解决方案


推荐阅读