属性自动映射时, 字符串会使用这样的 mapping:
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
keyword 默认是原样存储, 适用于精确查找过滤. type 选择比较如下:
keyword 与 text
- 当需要全文检索时, 用 text;
- 当需要完全精确检索时, 用 keyword.
- 需要
null_value
特性时, 用 keyword.
keyword 与 number(Integer Long)
- 需要范围信息, 大小信息时, 用 number;
- 只用来做唯一标记时, 用 keyword, 比 number 更快.
https://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html