ElasticSearch的数据类型,首先可参考官方文档:
Field data types | Elasticsearch Guide [8.2] | Elastic
从官方文档来看:
基础类型:
- binary :编码为Base64字符串的二进制值。
- boolean:布尔类型,true 或 false
- keywords:关键字家族,包括关键字keyword、常量关键字constant_keyword、通配符wildcard
- 数字类型:包括了 byte、short、integer、long、float、double、half_float、scaled_float
时间类型:包含了 date 和 date_nanos
别名类型:为现有字段定义别名。
对象和关系类型:
- object:一个 JSON 对象
- flattened:整个 JSON 对象作为单个字段值。
- nested:保留其子字段之间关系的 JSON 对象。
- join:为同一索引中的文档定义父/子关系。
结构化数据类型:
- Range:范围类型,例如 long_range、double_range、date_range 和 ip_range。
- ip:IPv4 and IPv6 addresses.
- version:软件版本。支持语义版本控制优先规则。
- murmur3:计算和存储值的哈希值。
聚合数据类型:
- aggregate_metric_double:预先汇总的指标值。
- histogram:直方图形式的预聚合数值。
文本搜索类型:
- text fields:文本系列,包括 text 和 match_only_text。分析的非结构化文本。
- annotated-text:包含特殊标记的文本。用于识别命名实体。
- completion:用于自动完成建议。
- search_as_you_type:键入时完成的类似文本的类型。
- token_count:文本中标记的计数。
文档排名类型:
- dense_vector:记录浮点值的密集向量。
- rank_feature:记录数字特征以在查询时提高命中率。
- rank_features:记录数字特征以在查询时提高命中率。
空间数据类型:
- geo_point:纬度和经度点。
- geo_shape:复杂的形状,例如多边形。
- point:任意笛卡尔点。
- shape:任意笛卡尔几何。
其他类型:
percolator:索引用 Query DSL 编写的查询。
数组类型:在 Elasticsearch 中,数组不需要专用的字段数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值必须是相同的字段类型。请参阅数组。
多领域:
出于不同目的以不同方式索引同一字段通常很有用(使用不同的分词器)。例如,字符串字段可以映射为全文搜索的文本字段,以及排序或聚合的关键字字段。或者,您可以使用标准分析器、英语分析器和法语分析器来索引文本字段。
这就是多领域的目的。大多数字段类型通过 fields 参数支持多字段。
字符串类型总结:text,keyword