面试题答案
一键面试- 数字类型推断规则:
- 如果字段值是整数(如
123
),Elasticsearch通常会推断为long
类型,对于较小范围的整数(-32768
到32767
)可能推断为short
类型。 - 如果字段值是浮点数(如
12.34
),会推断为double
类型,对于单精度浮点数(可表示范围相对较小且精度有限)可能推断为float
类型。
- 如果字段值是整数(如
- 字符串类型推断规则:
- 如果字段值看起来像结构化数据(如JSON对象字符串、XML字符串等),Elasticsearch可能会将其视为
object
类型。 - 对于普通文本字符串,默认情况下会被推断为
text
类型,并同时生成一个keyword
子字段用于精确匹配和聚合等操作。但如果该字符串长度较短且不期望进行全文搜索,如标识符、枚举值等,可能会直接被推断为keyword
类型。
- 如果字段值看起来像结构化数据(如JSON对象字符串、XML字符串等),Elasticsearch可能会将其视为
- 日期类型推断规则:
- Elasticsearch会尝试根据常见的日期格式来推断日期类型。常见格式如
YYYY - MM - DD
(如2023 - 01 - 01
)、YYYY - MM - DD HH:MM:SS
(如2023 - 01 - 01 12:00:00
)等。 - 也支持一些时间戳格式,如毫秒级时间戳(从1970年1月1日00:00:00 UTC开始的毫秒数)。如果字段值符合这些格式,就会被推断为
date
类型。
- Elasticsearch会尝试根据常见的日期格式来推断日期类型。常见格式如