【Elasticsearch】elastic search 字符串类型(text和keyword)

前言

ElasticSearch 5.0以后,字符串类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型: textkeyword

text

  • 会分词,然后进行索引,用于全文搜索。

  • 支持模糊、精确查询

  • 不支持聚合

keyword

  • 不进行分词,直接索引,keyword用于关键词搜索

  • 支持模糊、精确查询

  • 支持聚合

如果不指定类型,ElasticSearch字符串将默认被同时映射成text和keyword类型,会自动创建下面的动态映射(dynamic mappings):

{
    "foo": {
        "type": "text",
        "fields": {
            "keyword": {
                "type": "keyword",
                "ignore_above": 256
            }
        }
    }
 
}

在这里插入图片描述

fields


一个字符串字段可以映射为text字段用于全文本搜索,也可以映射为keyword字段用于排序或聚合。

PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "city": {
          "type": "text",
          "fields": {
            "raw": { 
              "type":  "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}
posted @ 2022-11-10 19:25  彬在俊  阅读(315)  评论(0)    收藏  举报