栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Elasticsearch获得SQL中的JOIN功能?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Elasticsearch获得SQL中的JOIN功能?

Elasticsearch不支持JOIN,这首先是NoSQL技术的全部目的。有多种方法可以使用父/子关系(如您所注意到的),嵌套对象以及特殊术语查找优化来在数据之间创建一些关系,仅此而已。

但是,为了充分利用Elasticsearch,主要思想是尽可能使数据规范化并存储独立的文档。这意味着您可以获取一个文档,其中包含所需的所有信息。您不必担心将要复制数据的事实。

例如,假设您在SQL数据库中具有以下JOIN查询,以检索所有人的地址,城市和国家(即4个表):

SELECt p.first_name, p.last_name,        a.street_name, a.street_num,       c.name, c2.name  FROM person p  JOIN address a ON a.id = p.addr_id  JOIN city c ON c.id = p.city_id  JOIN country c2 ON c2.id = p.country_id

在Elasticsearch中,您将创建一个文档,其中包含上述查询返回的确切字段,即

 {     "first_name": "John",     "last_name": "Doe",     "street_num": 34,     "street_name": "Main Street",     "city": "San Francisco",     "country": "United States" }

因此,一种看待这种情况的方式是,在Elasticsearch中,您将存储与在关系数据库中运行查询所获得的相同(或非常相似)的字段集。

从RDBMS迈向Elasticsearch是一个范式转变。如果您打算采取这一步骤,则需要在数据方面进行不同的思考。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382022.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号