ES父子关系创建、新增、查询、更新、删除
父子文档的特点
1. 父/子文档是完全独立的。 2. 父文档更新不会影响子文档。 3. 子文档更新不会影响父文档或者其它子文档。
操作如下:
-
创建索引
PUT auto_parts-whole-network-index
-
创建别名
POST /_aliases
{
"actions": [{
"add": {
"index": "auto_parts-whole-network-index",
"alias": "auto_parts-whole-network-alias"
}
}]
}
-
添加字段
PUT auto_parts-whole-network-index/_mapping/auto_parts-whole-network-type
{
"properties": {
"enterpriseId": {
"type": "keyword"
},
"companyName": {
"type": "keyword"
}
}
}
-
新增数据
##添加父文本 ID:10000000001
PUT auto_parts-whole-network-index/_doc/10000000001
{
"companyName": "企业名称",
"enterprise_product": {
"name": "enterprise"
}
}
##添加子文本,父文本ID:10000000001 子文本ID:20000000001
PUT auto_parts-whole-network-index/_doc/20000000001?routing=10000000001
{
"productName": "商品",
"enterprise_product": {
"name": "product",
"parent": "10000000001"
}
}
-
查询enterpriseId为空的数据(返回父文档及子文档10条)
POST auto_parts-whole-network-alias/_search
{
"from": 0,
"size": 10,
"query": {
"has_child": {
"query": {
"bool": {
"must_not": {
"exists": {
"field": "enterpriseId"
}
},
"adjust_pure_negative": true,
"boost": 1
}
},
"type": "product",
"inner_hits": {
"size": 10
}
}
}
}
-
根据企业ID查询(返回子数据)
POST auto_parts-whole-network-alias/_search
{
"query": {
"has_parent": {
"parent_type": "enterprise",
"query": {
"term": {
"enterpriseId": {
"value": "236848"
}
}
}
}
}
}
-
查询enterpriseId为空的数据(返回所有文档)
POST auto_parts-whole-network-alias/_search
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must_not": {
"exists": {
"field": "enterpriseId"
}
},
"adjust_pure_negative": true,
"boost": 1
}
}
}
-
根据条件删除数据
POST auto_parts-whole-network-alias/_delete_by_query
{
"query": {
"bool": {
"must": [
{
"terms": {
"pkid": ["23C3FE6C14DCC35C3D152461ED99FCB2"]
}
}
]
}
}
}
-
根据条件更新数据
POST auto_parts-whole-network-index/_update_by_query
{
"script": {
"inline": "ctx._source[contactPhoneList]=13415155455;"
},
"query": {
"bool": {
"must": [
{
"term": {
"pkid": "02C92154C3E5EA43054A3681DE938533"
}
}
]
}
}
}
上一篇:
JS实现多线程数据分片下载
下一篇:
高精度尘埃粒子计数器工厂空气质量监测必备
