是时候用 ES 拯救发际线啦

ES不同索引,不同字段之间如何进行联合查询,谢谢

Elasticsearch | 作者 ljfphp | 发布于2019年04月24日 | 阅读数:22773

比如我有两个索引A和B,A索引下面有个a.userid,B索引下面有个user_id,那么我该怎么查询当A.a.userid=B.user_id的值呢?就是类似于mysql的联表查询操作,但是索引名称和字段名称各不相同的那种。如果是先全文索引,然后操作数组的话,又担心查出来的数据太多,操作数组也不方便。
 
欢迎各位大佬的指导,提前拜谢
已邀请:

insist_93 - 90后IT男,初涉elastic

赞同来自: ljfphp

关注,也被这个问题困扰了很久

ljfphp - 叫我铁柱吧

赞同来自: laoyang360

此贴结束,ES和大多数的nosql相似,想要处理mysql这种关联关系还是有些强人所难了。这里提供一篇博客贡大家观看思考,需要改变自己的思维方式了:(干货 | Elasticsearch多表关联设计指南)https://blog.csdn.net/laoyang3 ... 84748

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

赞同来自: ljfphp

铁柱分析给力

ljfphp - 叫我铁柱吧

赞同来自:

经过实现,ES的不同索引,但是索引结构相同的话是可以进行联合查询的。但是如果索引结构不相同,字段名也不相同,就没什么好的方案了

ljfphp - 叫我铁柱吧

赞同来自:

之所以不愿意分别查两个索引,然后操作数组,是因为数据量太大,觉得这样太复杂了。所以先看看ES有没有好的方案,奈何自己学疏才浅,所以求助各位大佬

ljfphp - 叫我铁柱吧

赞同来自:

还有一个需要补充的,就是数据在录入的时候,没有采用特殊的数据结构,比如parent-child,或者nested 等。所以想要改变结构的话,不是特别容易。实在不行的话,就只能使用类似于拼接查询的方法了,先查询出来A的a.userid,然后再拿查询结果去筛选B中的user_id了

要回复问题请先登录注册