繁体   English   中英

ElasticSearch,size参数不适用于helpers.scan函数

[英]ElasticSearch, size parameter doesn't work for helpers.scan function

我使用以下python代码获取ElasticSearch记录。 我只想获取50000条记录。 但事实是我得到了整个索引(超过100万条记录)。

result = helpers.scan(
    es, 
    query={
        "_source": ["points.style_attrs.POI_TYPE", "point.poi_id.encrypted_value"],
        "size": 50000,
        "query": {
            "bool": {
                "must": [
                    {"term": {"metadata.tag": tag}},
                    {"term": {"metadata.city": city}}
                ]   
            }   
        }   
    },  
    size=1000,
    index=from_index)

当我调试代码时,我只想获取一些记录以确保我的代码正确。 如果获取整个索引,则无法快速调试代码。

您所做的一切都正确,除了您要处理的一件事情。 如helpers.scan文档中所引用

size:每次迭代发送的批处理的大小(每个分片)。

应该使用helpers.scan方法返回一个生成器,可以对其进行迭代以获取记录。 在您的情况下,代码如下所示:

result = helpers.scan(
es, 
query= your_query,
index=from_index)

count = 0
final_result = list()
for each_result in result:
    final_result.append(each_result)
    count += 1
    if count == 50000:
        break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM