ES索引映射的字段类型

2022-07-19 12:17:23

1、字段类型简介

存储在ES中的字段有其对应的字段类型,不同的字段类型表示允许存放的数据(例如string或boolean类型数据)及类型支持的操作,例如可以针对string类型数据设置text及keyword类型,其中text类型分词后可进行全文搜索,而keyword类型则用于精确过滤及排序。

字段类型以族划分,同一族中的类型支持类似的搜索功能,但在空间使用上及性能表现上会存在差异。例如keyword类型,它由keyword、constant_keyword及wildcard字段类型组成,其它族类型仅包含一个字段类型,如布尔类型家族仅有boolean类型组成。

2、字段类型

2.1、公共类型

类型说明
binary使用Base64编码的二进制字符串
booleantrue或false值
Keywordskeyword族,keyword、constant_keyword及wildcard
Numbers数值类型,如long、double等
Dates日期类型,包括date及date_nanos
alias针对已存在的字段映射一个alias

2.2、对象及关系类型

类型说明
object表示JSON对象
flattened整个JSON对象作为单个字段值
nestedJSON对象保留与其内部字段关系
join同一个索引中定义父子文档

2.3、结构化数据类型

类型说明
Range范围类型,如long_range,double_range,date_range或ip_range
ipIPv4及IPv6地址
version软件版本
murmur3计算并存储哈希值

2.4、聚合数据类型

类型说明
aggregate_metric_double聚合metric值
histogram聚合数值并用直方图展示

2.5、文本搜索类型

类型说明
text fields文本族,包括text及match_omly_text,解析非结构化文本
*annotated-text包含特殊标记的文本,用于识别命名实体
completion用于suggestion的自动补全
*search_as_you_type键入自动补全的类text类型
token_count计算文本中token的数量

2.6、文档排序类型

类型说明
*dense_vector记录浮点值的密集向量
*sparse_vector记录浮点值的稀疏向量
*rank_feature记录数值特征以在查询时提高命中率
*rank_features记录数值特征以在查询时提高命中率

2.7、空间数据类型

类型说明
geo_point经纬度点坐标
geo_shape复杂形状,如多边形
*point任意笛卡尔点
*shape任意笛卡尔几何

2.8、其他类型

类型说明
percolator索引用QueryDSL编写的查询

3、数组

在ES中数组不需要专门的字段类型表示,默认情况下任何字段都可以包含0个或多个值,但是数组中的所有值必须是相同的字段类型,详情参见Array。

4、多字段

出于不同目的以不用方式索引同一字段通常很有用,如字符串字段可以映射为全文搜索的文本字段,以及排序或聚合的关键字字段,又或者使用不同的分析器(standard/english/french)来索引文本字段,大多数字段支持多字段都是通过fields参数来设置。

PUT  /base_type{"mappings":{"properties":{"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above": 256}}}}}}# 这里设置索引base_type中的name字段text及keyword类型,其中keyword类型通过fields参数进行配置
  • 作者:adsk
  • 原文链接:https://blog.csdn.net/weixin_28906733/article/details/106417259
    更新时间:2022-07-19 12:17:23