簡體   English   中英

不清楚如何使用python elasticsearch upsert ElasticSearch

[英]Not clear how to upsert ElasticSearch using python elasticsearch

在這里查看類似的示例:

https://stackoverflow.com/a/33247409/1575066

from elasticsearch import Elasticsearch
es = Elasticsearch("localhost:9200")
es.update(index='test',doc_type='test1',id='1',body={'doc' {'username':'Tom'},'doc_as_upsert':True})

但現在想象的目標是附加到數組或增加先前的值(無需先獲取文檔)。

如果您提出正式請求,請參閱文檔

POST /website/pageviews/1/_update
{
   "script" : "ctx._source.views+=1",
   "upsert": {
       "views": 1
   }
}

我想知道如何完成附加到數組(只是簡單地添加到默認列表)。 看來elasticsearch自己的例子比我專門為Python找到的任何東西都容易。

我之前讀過一篇關於人們只是使用python請求做彈性搜索的東西的帖子,我想可能有一點要點......

您可以將script放在body參數中。

from elasticsearch import Elasticsearch

es = Elasticsearch()

es.update(
    index="test",
    doc_type="test1",
    id="1",
    body={"script": "ctx._source.tags+=new_tag",
          "params": {
             "new_tag" : "search"
            }
          }
    )

有關更新api的更多信息

這里的標簽是一個數組,我正在追加搜索 您還需要為此啟用腳本,或者您可以將腳本放在文件中並將該文件放在config/scripts文件夾中。 語法可能因ES版本而異。 如果它不起作用,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM