序言
Elasticsearch,中文名直译弹性搜索,不仅仅在单索引内部分片层面弹性搜索,更强的是在跨索引外围支持分片弹性搜索,同比其它分布式数据产品,此特性更鲜明,代表了 Elastic 集群架构设计的优越性。
本文将从以下几个方面展开探讨:为什么需要跨索引查询?
跨索查询有哪些经典应用场景?
跨索引查询技术原理是怎样的?
跨索引查询有哪些注意事项?
图示:跨索引示意图 + 多个索引查询效果图
为什么需要跨索引查询
技术限制
Elasticsearch 索引本身有一些指标限制,对于很多新手来说最容易忽视或者乱用。Elastic 索引数据量有大小限制;
单个分片数据容量官方建议不超过 50GB,合理范围是 20GB~40GB 之间;
单个分片数据条数不超过约 21 亿条(2 的 32 次方),此值一般很难达到,基本可以忽略,背后原理可以参考源码或者其它;
索引分片过多,分布式资源消耗越大,查询响应越慢。
基于以上限制,索引在创建之前就需要依据业务场景估算,设置合理的分片数,不能过多也不能过少。
技术便利
在基于关系型数据库的应用场景中,数据量过大,一般会采用分库分表策略,查询数据时基于第三方中间件,限制多多;在基于 NoSQL 的应用场景中,如 MongoDB,数据量过大ÿ