首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch DSL update by scan?

Elasticsearch DSL update by scan?
EN

Stack Overflow用户
提问于 2021-04-23 02:16:50
回答 1查看 34关注 0票数 0

可以使用Python的elasticsearch-dsl库中的scan()方法进行更新吗?

例如:

代码语言:javascript
复制
search = Search(index=INDEX).query(query).params(request_timeout=6000)

print('Scanning Query and updating.')
for hit in search.scan():
    _id = hit.meta.id
    # sql query to get the record from th database
    record = get_record_by_id(_id)
    hit.column1 = record['column1']
    hit.column2 = record['column2']
    # not sure what use to update here
EN

回答 1

Stack Overflow用户

发布于 2021-04-23 02:27:58

这可以通过使用elasticsearch客户端来完成:

代码语言:javascript
复制
for hit in search.scan():
    _id = hit.meta.id
    print(_id)

    # get data from database
    record = get_record_by_id(_id)

    body = dict(record)
    body.pop('_id')

    # update the elastichsearch client
    elastic_client.update(
        index=INDEX,
        id=_id,
        body={"doc": body}
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67218774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档