Elasticsearch - 基于ID列表的过滤/提升

时间:2013-01-31 11:05:32

标签: performance elasticsearch

我的用户对象用ES索引中的各个字段编制索引。 我还有另一项服务(不是ES)告诉我我的哪些用户目前在线。这是一个简单的用户ID列表。我无法将此“is_online”字段编入索引,因为它会定期更改。

但我希望能够使用此在线状态进行各种查询。 例如,我希望能够过滤我的结果,以便只获得当前在线的用户。 但我也希望能够根据这个ID列表执行提升查询。 例如,我希望能够获得一个用户列表,最好是在线用户。 我不知道最好的方法是什么(性能POV)。

欢迎任何帮助

1 个答案:

答案 0 :(得分:2)

我认为TermsFilter可以在这里提供帮助。

{
    "constant_score" : {
        "filter" : {
            "terms" : { "user" : ["id1", "id2", "idn"]}
        }
    }
}