Elasticsearch 常见的数据类型有哪些?
常见类型:
关键词: keyword 、constant_keyword 和 wildcard数值型: long , integer , short , byte , double
布尔型: boolean
日期型: date
二进制: binary
结构化数据类型:
范围型: integer_range , float_range , long_range , double_rangeip 地址类型: ip
软件版本: version
文字搜索类型:
非结构化文本 : text包含特殊标记的文本: annotated-text
自动完成建议: completion
对象和关系类型:
嵌套类型: nested 、join对象类型 : object 、flattened
空间类型:
地理坐标类型 : geo_point地理形状类型 : geo_shape
keyword 和 text 有什么区别?
keyword 不走分词器,而 text 会走分词器,使用keyword 关键字查询效率更高,一般在fields 中定义keyword 类型字段
Elasticsearch 是否有数组类型?
在 Elasticsearch 中,没有专门的数组数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值必须具有相同的数据类型。
Elasticsearch 怎么修改索引字段类型?
1、获取源索引的数据(mapping) 并创建临时索引:data_index_temp,
2、备份数据到临时索引:data_index_temp
3、删除原索引: data_index,
4、重新创建正确数据类型索引:data_index
5、再把临时索引:data_index_temp的数据备份到新创建索引 data_index。
以上语句通过kibana的 dev_tools/console 执行。
可以在 Mapping 中直接修改字段类型吗?
不可以!Elasticsearch 中的 Mapping 有点类似于数据库中的表结构定义,Mapping 中的字段类型只能增加不能修改,否则只能reindex 重新索引或者重新进行数据建模并导入数据。
什么是 Nested 数据类型?有什么用?
Elasticsearch 官方文档是这样介绍 Nested 数据类型的:
Nested (嵌套)类型是对象数据类型的特殊版本,它允许对象数组以一种可以相互独立查询的方式进行索引。
Nested 数据类型可以避免 数组扁平化处理,多个数组的字段会做一个笛卡尔积,导致查询出不存在的数据。
// 会导致查询John White也会匹配,将类型改为nested问题解决 PUT my_index/_doc/1 { "group" : "fans", "user" : [ { "first" : "John", "last" : "Smith" }, { "first" : "Alice", "last" : "White" } ] }
将多个字段值合并为一个字段怎么做?
使用 ,比如将 first_name 和 last_name 合并为 full_name ,但 full_name 不在查询结果中展示
标签:index,keyword,数据类型,索引,Elasticsearch,类型 From: https://www.cnblogs.com/cjhtxdy/p/18087535