ES中的数据类型学习之ARRAY

Arrays | Elasticsearch Guide 7.17 | Elastic

中文翻译 :Array · Elasticsearch 5.4 中文文档 · 看云

Arrays

In Elasticsearch, there is no dedicated array data type. Any field can contain zero or more values by default, however, all values in the array must be of the same data type. For instance:

  • an array of strings: `"one"`, `"two"`
  • an array of integers: `1`, `2`
  • an array of arrays: `1`, \[ `2`, `3` ] which is the equivalent of `1`, `2`, `3`
  • an array of objects: `{ "name": "Mary", "age": 12 }`, `{ "name": "John", "age": 10 }`

NOTE

Arrays of objects

Arrays of objects do not work as you would expect: you cannot query each object independently of the other objects in the array. If you need to be able to do this then you should use the nested data type instead of the object data type.

This is explained in more detail in Nested.

主要说了

1.es里没有专用的array类型,实际类型是keyword 或者object类型。

2.es的array只能存相同类型的数据

3.es这里的数组不是真正的数组,如果要用真正的数组,推荐用nested数据类型。

还有一些就不复制粘贴了。直接实战开始

PUT my-index-000001/_doc/1

{

"message": "some arrays in this document...",

"tags": "elasticsearch", "wow" ,

"lists": [

{

"name": "prog_list",

"description": "programming list"

},

{

"name": "cool_list",

"description": "cool stuff list"

}

]

}

PUT my-index-000001/_doc/2

{

"message": "no arrays in this document...",

"tags": "elasticsearch",

"lists": {

"name": "prog_list",

"description": "programming list"

}

}

PUT my-index-000001/_doc/2

{

"message": "no arrays in this document...",

"tags": "elasticsearch",

"lists": {

"name": "prog_list",

"description": "programming list"

}

}

查看下映射 GET my-index-000001/_mapping

发现属性实际为keyword 和properties

测试下查询

GET my-index-000001/_search

{

"query": {

"match": {

"tags": "elasticsearch"

}

}

}

发现查出两条数据没有问题。

但是查询 对象中的多个属性的时候就会出现问题

GET my-index-000001/_search

{

"query": {

"bool": {

"must": [

{ "match": { "lists.name": "prog_list" } },

{"match": {"lists.description": "cool stuff list"}

}

]

}

}

}

这个时候就需要用到nested了。

相关推荐
智购科技自动售货机厂家6 分钟前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习
数字新视界11 分钟前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
isfox43 分钟前
ReduceTask工作机制
大数据
adinnet20261 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
蹄蹄1 小时前
从“一次性检测“到“年度服务“:检测机构收入结构变了,合同和应收账款也要跟着变
大数据·数据库·人工智能
lazy H2 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
YIN_尹2 小时前
【git原理与使用】git初识与安装
大数据·git·elasticsearch
TDengine (老段)2 小时前
TDengine IDMP 十大实用功能(3)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
实验室管理云平台2 小时前
面向高职院校实训场景:实训实验室管理平台整体方案分享
大数据·科技·物联网·自动化