使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。

一个 _id 是否存在的查询优化的问题

Elasticsearch | 作者 da | 发布于2019年03月18日 | 阅读数:2631

大家好,我这里遇到一个查询很慢的问题,想请大家帮忙分析一下。
索引:按月创建,目前已经有三个了,总数据条数超过 2 亿条,id 是一个值 hash 的结果。
查询需求:给定几千个 _id ,确定是否已经存在。
语句如下:
query: {
terms: {
_id: _ids
}
}
现在每次查询都需要 20 ~ 30 秒, elasticsearch 是默认配置。试过把 Xms1g Xmx1g 都改为 4G 或 6G ,没有效果。
已邀请:

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

赞同来自:

 执行terms查询请求包含很多term可能会非常慢,因为每个附加term都需要额外的处理和内存。 
为了防止出现这种情况,可以直接或通过查找在术语查询中使用的最大数限制为65536.
可以使用索引设置index.max_terms_count更改特定索引的此默认最大值。
 
  

要回复问题请先登录注册