Elasticsearch作为一个面向文档的存储服务,并没有严格意义上的关联查询能力。但可以通过mapping来指定文档的nested-parent关系,实现关联。
下面以学生(student)和班级(clazz)的关系为例,演示这种"关联查询":
建立一个索引test,有student和clazz两个type,存储班级和学生
首先设置班级和学生的mapping:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
PUT /test { "mappings" : {
"clazz" : {
"properties" : {
"students" : {
"type" : "nested"
}
}
},
"student" :{
"_parent" : {
"type" : "clazz"
}
}
}
} |
实测clazz的映射描述可以省略
插入测试数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//班级 PUT /test/clazz/c1 { "name" : "class1" ,
"teacher" : "Mr wang"
} //学生,通过parent=c1将其关联至班级class1 PUT /test/student/s1?parent=c1 { "name" : "tom" ,
"age" : 15
} //学生,通过parent=c1将其关联至班级class1 PUT /test/student/s2?parent=c1 { "name" : "小明" ,
"age" : 16
} |
然后就可以查询了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
//查询班级class1中有哪些学生 GET /test/student/_search { "query" : {
"has_parent" : {
"type" : "clazz" ,
"query" : {
"match" :{
"name" : "class1"
}
}
}
}
} //查询小明在哪个班 GET /test/clazz/_search { "query" : {
"has_child" : {
"type" : "student" ,
"query" : {
"term" : {
"name" : {
"value" : "小明"
}
}
}
}
}
} http://www.wowtools.org/blog/articles/2015/09/08/1441692036407.html
|
相关推荐
iOS实例开发源码——garethstokes-evil-bees-765dfce.zip
iOS游戏应用源代码——garethstokes-evil-bees-765dfce.zip
iOS游戏应用源代码——jstart-facebreak-cocos2d-opengles20.zip
iOS实例开发源码——jstart-facebreak-cocos2d-opengles20-1b41815.zip
赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...
Elasticsearch(elasticsearch-8.2.0-windows-x86_64.zip),适用于Windows x86_64:它是一个高度可扩展的开源全文本搜索和分析引擎。它使您可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有复杂...
赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...
赠送jar包:elasticsearch-6.2.3.jar; 赠送原API文档:elasticsearch-6.2.3-javadoc.jar; 赠送源代码:elasticsearch-6.2.3-sources.jar; 赠送Maven依赖信息文件:elasticsearch-6.2.3.pom; 包含翻译后的API文档...
赠送jar包:elasticsearch-rest-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.8.3-sources.jar; 赠送Maven依赖信息文件:elastic...
赠送jar包:elasticsearch-6.3.0.jar; 赠送原API文档:elasticsearch-6.3.0-javadoc.jar; 赠送源代码:elasticsearch-6.3.0-sources.jar; 赠送Maven依赖信息文件:elasticsearch-6.3.0.pom; 包含翻译后的API文档...
最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-...
最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip最新版 elasticsearch-analysis-ik-8.7.0.zip
kettle 支持elasticsearch7.x 批量上传的插件,减压后放到data-integration\plugins 目录下即可
最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip最新版elasticsearch-analysis-ik-8.8.2.zip
适用于7.17.1系列,例如Elasticsearch的7.17.12版本。 elasticsearch-analysis-ik 是一个常用的中文分词器,在 Elasticsearch 中广泛应用于中文文本的分析和搜索。下面是 elasticsearch-analysis-ik 分词器的几个...
最新版linux elasticsearch-8.5.3-linux-x86_64.tar.gz最新版linux elasticsearch-8.5.3-linux-x86_64.tar.gz
elasticsearch-analysis-ik-7.4.2,es7.4.2 ik分词
elasticsearch-analysis-ik-7.14.0-c.zip elasticsearch-analysis-ik-7.14.0-c.zip elasticsearch-analysis-ik-7.14.0-c.zip
elasticsearch-analysis-ik-7.17.0
最新版 elasticsearch-analysis-ik-7.17.6.zip最新版 elasticsearch-analysis-ik-7.17.6.zip