python - python elasticsarch集成

标签 python elasticsearch

我必须使用elasticsearch更新python中的字段。 Elasticsearch是我可以使用的password enabled'-u'。

例:
Elasticsearch中要更新的字段是'reservestatus'应该从查询更新为打开
如果是search_timestamp-current_timestamp>10 mins(search_timestamp是我要在elasticsearch中添加的字段)。

我对此并不陌生,任何线索都将不胜感激。
谢谢

最佳答案

如果我正确理解了您的问题,则需要执行以下两个步骤:首先,获取要更新的所有文档,然后更新它们。

要获取文档,请使用搜索功能。试试这个:

body= {
  "query": {
    "range": {
      "search_timestamp": {
        "gte": "now-10m"
      }
    }
  }
}

res = client.search(index="YourIndexName", body=body)

然后遍历结果,获取每个文档的ID并更新:

for doc in res['hits']['hits']:
  doc_id = doc._id
  body = {
    "doc" : {
      "reservestatus": "open"
    }
  }
  client.update(index="YourIndexName", id=doc_id, body=body)

如果要提高性能,可以使用bulk API。

关于python - python elasticsarch集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62198469/

相关文章:

elasticsearch - 在 ElasticSearch 中重新索引多个索引的最佳方法

angularjs - 如何在Meanjs中从新的mongodb Collection创建架构并显示记录

elasticsearch - 即使字段的映射基于 `sum`和 `avg`类型,如何执行 `text`和 `keyword` aggs?

curl - elasticsearch REST API转义序列

elasticsearch - 为什么此ElasticSearch扫描和滚动返回IndexMissingException

python - 在 Centos 上安装 mysql-python

python - 您在 python 代码中的什么地方使用生成器功能?

python - 具有子模式异常的正则表达式模式 (Python)

python - 如何在 SQLAlchemy 关系中从父级中删除子级

python - Django 模板 : Why block in included template can't be overwritten by child template?