在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

elasticsearch有没有类似sql的连表查?

Elasticsearch | 作者 wincheck | 发布于2018年07月21日 | 阅读数:15470

我有以下索引及类型索引:products
类型:products_info, products_img, products_attrs
products_info是存放商品信息的
products_img是存放商品图片的(一个商品对应多张图片 = 对应多个属性,每个属性都有一张图片)
products_attrs是存放商品多属性的(一个商品对应多个属性)
那么,我需要使用elasticsearch做到类似于sql的连表查询
比如我搜索products_info商品关键词为:bag的并且搜索products_attrs的属性id(该ID并不是自增ID)必须大于0
那么在elasticsearch中该如何做到呢?
请帮助我,谢谢!
已邀请:

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

赞同来自: rochy

5.X版本的父子文档实现, 6.X版本 Join实现,参考:https://blog.csdn.net/laoyang3 ... 74481
如果表结构是同步过来的,建议先在关系型数据库中创建视图后再做同步操作。

milu2003

赞同来自:

products_info和products_attrs表是一对多关系。父子文档查询看这里:https://www.elastic.co/guide/c ... .html
 
如果可以,我建议你直接把products_attrs的信息嵌入products_info表。避免联合查询,以空间换时间。否则你就只能父子文档联合查询了。麻烦且性能受到影响

yayg2008

赞同来自:

建议在数据写入ES时进行数据扁平化处理,通过适当的数据冗余来避免跨索引查询,空间换性能。

要回复问题请先登录注册