不为失败找理由,要为成功找方法。

ES中是否无法实现 mysql 类似的 join

Elasticsearch | 作者 leon0204 | 发布于2018年01月22日 | 阅读数:6877

拿这个例子中:https://elasticsearch.cn/question/649
4、查询用户ID为1的所有博客。
curl -XPOST 'localhost:9200/my_index/blogpost/_search?pretty' -d '
{
"query":{
"has_parent":{
"type":"user",
"query":{
"match":{"user":1}
}
}
}
}
这样结果也只是查出了 blog 的信息,能否直接带上user 的信息呢?

比如 mysql 就是

select user.* ,blog.* from user inner join blog where user.uid = '查询的对象的uid '

找了很久,是否没有能直接实现这样结果的查询?
已邀请:

smiling

赞同来自:

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

同上,父子文档可以实现。子文档每一篇指定父文档的id

json_111

赞同来自:

楼主最后达到想要的效果了没?我现在也正面临这样的问题

fanmo3yuan

赞同来自:

使用父子查询可以,但是父子查询性能比较差,并且当数据分布不均时,可能存在热点shard,最好结合业务测试一下

要回复问题请先登录注册