gpt4 book ai didi

php - 如何使用 PHP 更新/替换 ElasticSearch 文档中的字段?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:27 27 4
gpt4 key购买 nike

我想更新我的 Elasticsearch 索引文档的字段。在我的例子中,它是标签字段。这是我目前拥有的代码:

    // Index tags in the page document
$es_client->update([
'index' => 'myappname',
'type' => 'page',
'id' => $page_id,
'body' => [
'doc' => [
'tags' => $tagsArray
]
]
]);

因此,这将通过向其添加标签数组来更新我的文档,但不会删除旧标签。如何确保在添加新标签时删除旧标签?

我确实查看了文档,但众所周知,Elasticsearch 文档可能非常困惑且无处不在。因此,经过几天的搜索,我在这里问。

如有任何帮助或建议,我们将不胜感激。

最佳答案

标准更新行为是合并数组/对象字段,如 update API documentation 中所述。 .

...objects are merged together, existing scalar fields are overwritten and new fields are added.

因此,您可以使用脚本直接修改文档源。您可以使其通用并因此可缓存,并传入 params 以获得更好的性能。 Php API documentation

// Index tags in the page document
$es_client->update([
'index' => 'myappname',
'type' => 'page',
'id' => $page_id,
'body' => [
'script' => 'ctx._source.tags=tags',
'params' => ['tags' => $tagsArray]
]
]);

关于php - 如何使用 PHP 更新/替换 ElasticSearch 文档中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com