动态映射
顾名思义,就是自动创建出来的映射。es 根据存入的文档,自动分析出来文档中字段的类型以及存储方式,这种就是动态映射。
以上是自动映射的结果
-
"fields"
:这是映射中的一个键,用于定义字段的多个子字段,以便在同一文档中存储不同类型的数据或进行不同类型的索引。 -
"keyword"
:这是一个子字段的名称。在这里,它用来定义一个 "keyword" 类型的子字段,通常用于精确匹配搜索。 -
"type"
:这定义了子字段的数据类型,这里是 "keyword",表示该子字段的数据类型是关键字。关键字字段存储原始值,不会进行分词,适合用于精确匹配和排序。 -
"ignore_above"
:这个选项指定了一个阈值,表示文本字段的内容超过这个长度时,将不会被索引。在这个例子中,如果文本长度超过 256 个字符,就不会被索引到该子字段中。
静态映射
静态映射不会创建字段的子字段,查询映射的结果如下:
静态映射中,默认情况下,文档中如果新增了字段,mappings 中也会自动新增进来。
有的时候,如果希望新增字段时,能够抛出异常来提醒开发者,这个可以通过 mappings 中 dynamic 属性来配置。
dynamic 属性有三种取值:
- true,默认即此。自动添加新字段。
- false,忽略新字段。
- strict,严格模式,发现新字段会抛出异常。