elasticsearch-php 6.0中的句子:
这意味着upsert将尝试运行您的更新脚本,但是如果文档不存在(或者您试图更新的字段不存在),则将插入默认值。
当我试图在现有文档中插入一个字段时,它不起作用,并返回一个null_pointer_exception。尝试使用curl返回相同的结果。
Elasticsearch Reference 6.1没有提到可以插入字段。可能存在版本问题。没有Elasticsearch-PHP 6.1 !!
参考文献中的示例:
curl -XPOST 'localhost:9200/test/type1/1/_update?pretty' -H 'Content-Type: application/json' -d'
{
"script" : {
"source": "ctx._source.ava += params.count",
"lang": "painless",
"params" : {
"count" : 4
}
},
"upsert" : {
"ava" : 1
}
}
'当文档存在并且缺少'ava‘字段时,不起作用。
那么,问题是如何在现有文档中插入一个字段?卷曲示例还可以,谢谢。
发布于 2018-02-02 13:03:27
如果ava字段不存在,则预期为NPE。改为这样更改您的脚本:
{
"script" : {
"source": "ctx._source.ava = (ctx._source.ava ?: 0) + params.count",
"lang": "painless",
"params" : {
"count" : 4
}
},
"upsert" : {
"ava" : 1
}
}https://stackoverflow.com/questions/48575382
复制相似问题