繁体   English   中英

Elasticsearch Python将扫描程序的结果传递给批量写入程序

[英]Elasticsearch Python passing result of scanner to bulk writer

我正在从一个ES环境中读取并写入另一个环境。 由于各种原因,这是目前唯一可用的解决方案。 我发了这样的扫描仪。

elastic_source = elasticsearch.Elasticsearch(
    "https://sourceHostName.com:9200",
    http_auth=('elastic', 'changeme'))

scanner = elasticsearch.helpers.scan(elastic_source, query={"query": {"match_all": {}}},
                                          index="the_index")

我可以将此扫描助手的结果传递给批量写入器吗? 如果是这样,怎么样?

elastic_source = elasticsearch.Elasticsearch(
    "https://sourceHostName.com:9200",
    http_auth=('elastic', 'changeme'))

scanner = elasticsearch.helpers.scan(elastic_source, query={"query": {"match_all": {}}},
                                          index="the_index")
scan_result = ({
                         "_index": _index,
                         "_type": result['_type'],
                         "_id": result['_id'],
                         "_source": result['_source'],
                     }, for result in scanner)

elasticsearch.helpers.bulk(elastic_destination, scan_result)

这将允许人们直接将从扫描方法创建的生成器传递给批量写入器方法以供使用。

暂无
暂无

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

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