用了Elasticsearch,一口气上5T

elasticsearch两个主键相同字段不同的索引联查返回结果

Elasticsearch | 作者 liyangmvp | 发布于2021年08月13日 | 阅读数:1509

现状:有两个索引,具有相同的id主键,但是字段不同,数据量在1亿多,相当于结构化数据库中对一个大表纵向分表,拆分原因是一部分是几百G的基础信息,一部分5T以上的大文本,类似文献那种。
需求:一个表达式同时查询基本信息和大文本字段,返回基本信息清单。
问题:由于基础信息更新比较频繁,而且更新量比较大,但是大文本字段又基本不更新,所以带着大文本更新非常耗资源,把两部分整合到一起基本无法支撑数据更新,求解决思路。
已邀请:

FFFrp

赞同来自:

join 关联查询试试

liyangmvp - 探讨es海量数据应用方案

赞同来自:

关联查询都看过,每种都在这个场景上受到限制:
1.Application-side joins:该需求场景要精确返回命中数量,涉及到大数据量的联合去重计数,速度响应不了;
2.Data denormalization:冗余字段,如需求所说,更新量大,更新受限;
3.Nested objects:嵌套模式,同上一条,更新量大;
4.Parent/child relationships:父子模式,每一个文档有一个子文档,且父文档量大,与该模式设计初衷不一致,查询响应无法满足。

tongchuan1992 - 学无止境、学以致用

赞同来自:

你这个是要优化还是提供查询思路,如果是查询思路,es查询的时候指定索引,返回的时候指定索引返回的字段,按理来说是可以解决你的问你的问题的

liyangmvp - 探讨es海量数据应用方案

赞同来自:

是需要优化思路,指定索引是能实现查询,但要兼顾数据更新效率和查询效率,如果把大字段和小字段合在一个索引里,查询是没问题,但大量更新时更新不动,大文本和小文本字段分开到两个索引又实现不了同时在大字段和小字段进行搜索,返回精确命中数量并返回清单

要回复问题请先登录注册