es 父子查询_es父子文档建立查询

本文档详细介绍了如何在Elasticsearch 5.6.9中进行父子文档的创建、查询和操作。首先,通过PUT请求创建了数据库和父子文档的映射。接着,填充了父文档(line)和子文档(station)的数据。查询部分包括根据子文档内容查询父文档、根据父文档查询子文档以及通过子文档内容级联查询父文档并排序。在进行排序查询前,需确保字段可排序。
摘要由CSDN通过智能技术生成

(一)准备

1,elasticSearch 5.6.9

2,kibana 5.6.9

3,jdk1.8

(二)创建索引,文档

1创建数据库PUT /database?pretty

0728a1a53c24

2创建子文档指向父文档(不用指定类型也可)PUT database/station/_mapping

{

"station":{

"_parent":{

"type":"line"

},

"properties":{

"stationId":{"type":"long"},

"stationName":{"type":"text"}

}

}

}

0728a1a53c24

0728a1a53c24

(三)填充数据

插入父文档一条记录

插入id = 1的6路POST /database/line/1

{

"lineName":"6路",

"lineId":"100"

}

插入id = 2的966路POST /database/line/2

{

"lineName":"966路",

"lineId":"101"

}

0728a1a53c24

插入子文档内容

插入station = 1POST /database/station/1?parent=1

{

"stationName":"文化路丰产路",

"stationId":"1000"

}

0728a1a53c24

(四)查询内容

查询数据库中line表的那一列(文档)内容(那个内容(文档)呢?是子表含有station=1000字段的表的那一列)POST /database/line/_search

{

"query": {

"has_child": {

"type": "station",

"query": {

"match":{

"stationId":"1000"

}

}

}

}

}

0728a1a53c24

查询station 中的文档,条件是父索引是linePOST /database/station/_search

{

"query": {

"has_parent": {

"type": "line",

"query": {

"match":{

"lineId":"100"

}

}

}

}

}

通过子文档内容查询父文档GET database/line/_search

{

"query": {

"has_child": {

"type": "station",

"query": {

"match": {

"stationId": "1000"

}

}

}

}

}

排序查询之前需要开启字段可排序!!!PUT database/_mapping/line

{

"properties":{

"lineId":{

"type":"text",

"fielddata":true

}

}

}

父子文档查询(模糊匹配父文档,级联子文档 并排序)

POST /database/line/_search

{

"query": {

"bool": {

"must": [{

"wildcard": {"lineName": "6"}

},{

"has_child": {

"type": "station",

"query": {

"bool": {

"must": [

{"term": {"stationId": "1000"}}

]

}

},

"inner_hits": {"size":1000,

"sort": [

{

"stationId": "asc"

}

]}

}

}]

}

},

"sort": [

{

"lineId": "asc"

}

],

"size": 1000

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值