看文档_id 和 _uid都是存储在 _all字段里面
现在环境大致这样:
3台es集群,每台12G
索引5个 每个索引大致2亿条数据,200G储存
其中一个索引里面_id指定为需求特定字段,
现在根据_id 用mget 或者 ids查询都很慢
mget 要快些。
有什么办法能优化 这种情况 _id的批量查询呢?
大佬有什么建议都可以指出,我这边测试结果会在评论里面详细列出
感谢
现在环境大致这样:
3台es集群,每台12G
索引5个 每个索引大致2亿条数据,200G储存
其中一个索引里面_id指定为需求特定字段,
现在根据_id 用mget 或者 ids查询都很慢
mget 要快些。
有什么办法能优化 这种情况 _id的批量查询呢?
大佬有什么建议都可以指出,我这边测试结果会在评论里面详细列出
感谢
4 个回复
puyunjiafly
赞同来自:
执行该索引
{
"sort": [
{
"_uid": {
"order": "desc"
}
}
]
}
然后执行ids查询 效率很高
请教:这种方式是将uid导入内存,索引查询效率提高导致的吗?
这种数据量大后是不是会对jvm造成很大消耗
Marquezzzz
赞同来自:
puyunjiafly
赞同来自:
1:es版本5.2
2:将_uid(fielddata) sort 统一加载到内存
3:不改变indices.fielddata.cache.size大小,此数据一直保存到内存满足需求。
4:数据大小2E 查询效率 1000个_id/20多毫秒
缺点:太吃内存,根据功能需求,打算将该索引分片单独分配到一台机器提供该功能。
诗兄
赞同来自: