您的位置:首页 > 编程语言 > Java开发

Elasticsearch java API (22)查询 DSL Joining查询

2016-07-04 14:03 736 查看


加入查询编辑

执行完整的sql风格像Elasticsearch连接在一个分布式系统是非常昂贵的。相反,Elasticsearch提供两种形式的加入是为了规模水平。

nested
 查询文档可能包含字段的类型
 nested
。这些字段是用来索引数组的对象,其中每个对象可以查询(
 nested
查询)作为一个独立的文档。
has_child
 has_parent
 查询两个文档类型之间的亲子关系可以存在在一个索引。的
 has_child
查询返回父文档的子文档匹配指定的查询,而
 has_parent
查询返回子文件的父文档匹配指定的查询。


嵌套查询编辑

看到嵌套查询

QueryBuilder qb = nestedQuery(
"obj1",      //1
boolQuery()     //2
.must(matchQuery("obj1.name", "blue"))
.must(rangeQuery("obj1.count").gt(5))
)
.scoreMode("avg");   //3




嵌套文档路径


你的查询。任何字段引用内部查询必须使用完整路径(完全限定)。


得分模式可以
 max
,
 total
,
 avg
(默认)或
 none


子查询编辑

看到子查询

QueryBuilder qb = hasChildQuery(
"blog_tag",             //1
termQuery("tag","something")  //2
);




孩子类型查询


查询


父查询编辑

看到有父母

QueryBuilder qb = hasParentQuery(
"blog",                     //1
termQuery("tag","something")    //2
);



父类型来查询


查询
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息