Elasticsearch的困惑之处:文档更新是使用PUT还是POST?

首先

我使用Elasticsearch,并且想随心所欲地进行备忘录级别的记录,写下一些模糊的内容。

更新Elasticsearch文档

Elasticsearch的文档更新请求可使用PUT方法或POST方法。
关于它们的区别和使用时机,感觉有点困惑。。。

我比较了使用PUT和POST进行文档更新的方式。

更新範囲の違い

PUT: 指定ドキュメントIDを持つドキュメントを丸ごと置き換える(※ Elasticsearchリファレンスを参照)

PUT test/_doc/1
{
“counter” : 1,
“tags” : [“red”]
}

POST: 指定ドキュメントIDを持つドキュメントの一部フィールドを置き換える

方法1: doc句による更新(※ Elasticsearchリファレンスを参考)

POST test/_update/1
{
“doc”: {
“name”: “new_name”
}
}

方法2: script句による更新

POST test/_update/1
{
“script” : {
“source”: “ctx._source.counter += params.count”,
“lang”: “painless”,
“params” : {
“count” : 4
}
}
}

ドキュメントの再インデックス

両者ともにインデックスが再作成され、ドキュメントのバージョンが上がる

最后

作为Elasticsearch文档的更新方法,
POST可以使用脚本,并且似乎比PUT更灵活可用。

广告
将在 10 秒后关闭
bannerAds