字段数据类型

编辑

每个字段都有一个字段数据类型,或称为字段类型。此类型指示字段包含的数据种类,例如字符串或布尔值,以及其预期用途。例如,您可以将字符串索引到 textkeyword 字段。但是,text 字段值会进行分析以进行全文搜索,而 keyword 字符串则保持原样以进行过滤和排序。

字段类型按系列分组。同一系列中的类型具有完全相同的搜索行为,但可能具有不同的空间使用或性能特征。

目前,有两个类型系列,keywordtext。其他类型系列只有一个字段类型。例如,boolean 类型系列由一个字段类型组成:boolean

常用类型

编辑
binary
以 Base64 字符串编码的二进制值。
boolean
truefalse 值。
Keywords
keyword 系列,包括 keywordconstant_keywordwildcard
Numbers
数值类型,例如 longdouble,用于表示数量。
Dates
日期类型,包括 datedate_nanos
alias
定义现有字段的别名。

对象和关系类型

编辑
object
一个 JSON 对象。
flattened
作为单个字段值的整个 JSON 对象。
nested
保留其子字段之间关系的 JSON 对象。
join
为同一索引中的文档定义父/子关系。
passthrough
为同一级别的子字段提供别名。

结构化数据类型

编辑
Range
范围类型,例如 long_rangedouble_rangedate_rangeip_range
ip
IPv4 和 IPv6 地址。
version
软件版本。支持 语义版本控制 优先级规则。
murmur3
计算并存储值的哈希值。

聚合数据类型

编辑
aggregate_metric_double
预聚合的指标值。
histogram
以直方图形式预聚合的数值。

文本搜索类型

编辑
text 字段
文本系列,包括 textmatch_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 参数支持多字段。