字段数据类型
Elasticsearch支持文档中字段的多种不同数据类型:
核心数据类型
字符串
-
text
和keyword
数字
-
long
、integer
、short
、byte
、double
、float
、half_float
、scaled_float
日期
date
日期纳秒
date_nanos
布尔
boolean
二进制
binary
范围
-
integer_range
、float_range
、long_range
、double_range
、date_range
复杂数据类型
对象
-
object
用于单个JSON对象
嵌套
-
nested
用于JSON对象数组
地理数据类型
Geo-point
-
geo_point
表示lat/lon坐标点
Geo-shape
-
geo_shape
用于复杂形状(如多边形)
专门的数据类型
IP
-
ip
用于IPv4和IPv6地址
完成数据类型
-
completion
提供自动完成建议
令牌数
-
token_count
用于计算字符串中的令牌数量
mapper-murmur3
-
murmur3
在索引时计算值的哈希值并将它们存储在索引中
mapper-annotated-text
-
annotated-text
索引包含特殊标记的文本(通常用于标识命名实体)
过滤器
- 接受来自query-dsl的查询
连接
- 为同一索引中的文档定义父/子关系
别名
- 定义现有字段的别名
排名功能
- 记录数字特性以提高查询时的命中率。
密集向量
- 记录浮点值的密集向量。
稀疏向量
- 记录浮点值的稀疏向量。
按类型搜索
- 类似文本的字段,为查询进行优化,以实现按类型完成
数组
在Elasticsearch中,数组不需要专用字段数据类型,默认情况下,任何字段都可以包含零个或多个值,但是数组中的所有值必须具有相同的数据类型。
多字段
为不同的目的以不同的方式索引相同的字段通常是有用的,例如,字符串字段可以映射为用于全文搜索的text
字段,以及用于排序或聚合的keyword
字段,或者,你可以使用标准分析器、英语分析器和法语分析器索引文本字段。
这就是多字段的目的,大多数数据类型通过fields
参数支持多字段。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。