如何同时过滤多个值?

时间:2019-05-28 09:56:34

标签: python elasticsearch

我正在使用弹性搜索过滤1个文档,并且使用循环来归档许多文档。但是现在我想在一个请求中过滤许多文档以优化脚本。

目前我有这个查询,我正在使用“ for”循环通过uuid进行过滤。

for id in id_list:
    filter (id)

def filter(id): 

    result = requests.get(
            settings + '/data/_search?size=10000',
            json={
                "query": {
                    "bool": {
                        "filter": {
                            "terms": {
                                "id": id
                            }
                        }
                    }
                },
                "_source": {
                    "exclude": ["type", "date"]
                }
            }
        )

我只想一次请求一次获取所有文档以优化代码。

1 个答案:

答案 0 :(得分:2)

terms查询采用一组参数,有关示例,请参见reference