使用ElasticSearch在静态列表中按ID检索文档

时间:2018-08-01 05:58:54

标签: elasticsearch nosql

我很难解决问题。问题是这样的-

在ElasticSearch中,我有数百万种类型为user的文档。我们与这些用户创建的列表有两种。

  1. 动态-根据条件,列表成员会更改(例如,最近30天创建的用户)
  2. 静态-用户列表使用用户ID的CSV进行硬编码

我们从ElasticSearch查询两种类型的列表。动态列表更容易查询,因为它需要评估的条件更少,而ES可以做到的很好。但是问题是从静态列表中检索数据,因为该查询是一个terms查询,当用户ID数量较大时,它会产生性能问题。

以下是我的ES查询

{
    "query": {
        "terms" : { "userId" : ["userId1", "userId2"]}
    }
}

如果我传递了多个userId(大约50k),则ES CPU突然启动并开始产生504错误。

除了存储可以从ES快速检索数据的静态列表之外,还有其他选择吗?

0 个答案:

没有答案