如何使用python将新的键值对插入到现有的弹性文档中?

7rtdyuoh  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(95)

我在elastic中尝试了typical _update方法,但不起作用。

data_to_send ={
        "new_key1": new_value1,
        "new_key2": new_value2,
        "new_key3": new_value3
      }

response = requests.post(
          url=f"https://{elasticurl}:{port}/{target_index}/_update/{id}", 
          headers={'Content-Type': 'application/json'}, 
          json=data_to_send, 
          verify=False,
          auth = (user,password))

字符串
URL被双重检查,并且ID是用于标识要更新的文档的文档ID。这里的关键疑问是,当我们将data_to_send发送到url时,文档会发生什么,文档是否接受新的键值对?文档并没有解决将新的键值对插入到现有文档中的问题,它只讨论了更新现有键的值。
我也试过requests.put,elasticsearch.update,当我尝试在现有文档中插入新的键值对时,这两个方法似乎都不起作用。我需要一些方法来插入新的键-值对到现有的文档中使用的文档ID在弹性。

xlpyo6sf

xlpyo6sf1#

您可以参考this文档,正如上面提到的,文档应该在doc内部传递以进行部分更新。

POST test/type1/1/_update
{
    "doc" : {
        "name" : "new_name"
    }
}

字符串
我不是pythonMaven,但data_to_send应该改变如下,它应该工作:

data_to_send ={
   "doc" : {
        "new_key1": new_value1,
        "new_key2": new_value2,
        "new_key3": new_value3
      }
}

相关问题