字段数据类型
编辑字段数据类型编辑
每个字段都有一个_字段数据类型_,或_字段类型_。此类型指示字段包含的数据类型,例如字符串或布尔值,以及其预期用途。例如,您可以将字符串索引到 text
和 keyword
字段。但是,text
字段值会被分析以进行全文搜索,而 keyword
字符串则按原样保留以进行过滤和排序。
字段类型按_系列_分组。同一系列中的类型具有完全相同的搜索行为,但可能具有不同的空间使用量或性能特征。
目前,有两个类型系列,keyword
和 text
。其他类型系列只有一个字段类型。例如,boolean
类型系列由一个字段类型组成:boolean
。
常见类型编辑
-
binary(二进制)
- 编码为 Base64 字符串的二进制值。
-
boolean(布尔值)
-
true
和false
值。 - Keywords(关键字)
- 关键字系列,包括
keyword
、constant_keyword
和wildcard
。 - Numbers(数字)
- 数字类型,例如
long
和double
,用于表示数量。 - Dates(日期)
- 日期类型,包括
date
和date_nanos
。 -
alias(别名)
- 为现有字段定义别名。
对象和关系类型编辑
-
object(对象)
- JSON 对象。
-
flattened(扁平化)
- 将整个 JSON 对象作为单个字段值。
-
nested(嵌套)
- 保留其子字段之间关系的 JSON 对象。
-
join(连接)
- 为同一索引中的文档定义父子关系。
结构化数据类型编辑
- Range(范围)
- 范围类型,例如
long_range
、double_range
、date_range
和ip_range
。 -
ip(IP 地址)
- IPv4 和 IPv6 地址。
-
version(版本)
- 软件版本。支持 语义化版本 优先级规则。
-
murmur3
- 计算并存储值的哈希值。
聚合数据类型编辑
-
aggregate_metric_double(聚合指标双精度浮点数)
- 预先聚合的指标值。
-
histogram(直方图)
- 以直方图形式预先聚合的数值。
文本搜索类型编辑
-
text
字段 - 文本系列,包括
text
和match_only_text
。已分析的非结构化文本。 -
annotated-text(带注释的文本)
- 包含特殊标记的文本。用于识别命名实体。
-
completion(自动完成)
- 用于自动完成建议。
-
search_as_you_type(边输入边搜索)
-
类似于
text
的类型,用于边输入边完成。 -
semantic_text(语义文本)
-
token_count(词条计数)
- 文本中词条的数量。
文档排名类型编辑
-
dense_vector(稠密向量)
- 记录浮点值的稠密向量。
-
sparse_vector(稀疏向量)
- 记录浮点值的稀疏向量。
-
rank_feature(排名特征)
- 记录一个数值特征,以便在查询时提升匹配度。
-
rank_features(排名特征)
- 记录多个数值特征,以便在查询时提升匹配度。
空间数据类型编辑
-
geo_point(地理点)
- 纬度和经度点。
-
geo_shape(地理形状)
- 复杂的形状,例如多边形。
-
point(点)
- 任意的笛卡尔点。
-
shape(形状)
- 任意的笛卡尔几何图形。
其他类型编辑
-
percolator(渗透器)
- 索引用 查询 DSL 编写的查询。
数组编辑
在 Elasticsearch 中,数组不需要专用的字段数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值必须属于相同的字段类型。请参阅 数组。
多字段编辑
为不同目的以不同方式索引同一个字段通常很有用。例如,可以将 string
字段映射为 text
字段以进行全文搜索,并映射为 keyword
字段以进行排序或聚合。或者,您可以使用 standard
分析器、english
分析器 和 french
分析器 对文本字段进行索引。
这就是_多字段_的目的。大多数字段类型都通过 fields
参数支持多字段。