我很难解决问题。问题是这样的-
在ElasticSearch中,我有数百万种类型为user
的文档。我们与这些用户创建的列表有两种。
我们从ElasticSearch查询两种类型的列表。动态列表更容易查询,因为它需要评估的条件更少,而ES可以做到的很好。但是问题是从静态列表中检索数据,因为该查询是一个terms
查询,当用户ID数量较大时,它会产生性能问题。
以下是我的ES查询
{
"query": {
"terms" : { "userId" : ["userId1", "userId2"]}
}
}
如果我传递了多个userId(大约50k),则ES CPU突然启动并开始产生504错误。
除了存储可以从ES快速检索数据的静态列表之外,还有其他选择吗?