mapping
Dynamic Mapping
不能被索引,查询不了
set mapping
倒排索引
reindex
增加字段
修改mapping后查询不了
执行_update_by_query mapping更新前的数据可以搜索到,将原有索引重新索引
更改字段
- 先创建一个新索引
- 将数据迁入到新索引
新index存在数据
数据类型
-
es整形支持到long int64,之前有些字段都是uint64的字段。
-
string 类型字段查询结果有些值查询不出来,甚至保存,字符串将默认被同时映射成text和keyword类型
1 |
|
Text:会分词,然后进行索引 支持模糊、精确查询 不支持聚合 (match*)
keyword:不进行分词,直接索引 支持模糊、精确查询 支持聚合 (term agg)
ignore_above
字符串长度>ignore_above的值,不会被索引(通过这个值查不到,聚合不了),但是可以保存。
对于长字符串,可以使用字符串数组(方便分词,ignore_above的值所用到数组的每个元素,而不是数组长度)
dynamic mapping 默认ignore_above: 256
keyword类型的最大支持的长度为32766个UTF-8类型的字符
doc_values and fielddata
search 、 sort and agg
搜索 倒排索引
doc_values 正向索引 对不分词的字段默认开启,包括多域字段,对分词字段默认关闭。根据_source列式存储数据使得sort ,agg更高效,占据存储空间。重新设置需要重建index
fielddata 对分词的字段进行sort and agg。 即开即用,占内存。
搜索ip类型
1 |
|
1 |
|