首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Upserting字段不适用于elasticsearch-php

Upserting字段不适用于elasticsearch-php
EN

Stack Overflow用户
提问于 2018-02-02 11:42:10
回答 1查看 768关注 0票数 2

elasticsearch-php 6.0中的句子:

这意味着upsert将尝试运行您的更新脚本,但是如果文档不存在(或者您试图更新的字段不存在),则将插入默认值。

当我试图在现有文档中插入一个字段时,它不起作用,并返回一个null_pointer_exception。尝试使用curl返回相同的结果。

Elasticsearch Reference 6.1没有提到可以插入字段。可能存在版本问题。没有Elasticsearch-PHP 6.1 !!

参考文献中的示例:

代码语言:javascript
复制
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‘字段时,不起作用。

那么,问题是如何在现有文档中插入一个字段?卷曲示例还可以,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 13:03:27

如果ava字段不存在,则预期为NPE。改为这样更改您的脚本:

代码语言:javascript
复制
{
    "script" : {
        "source": "ctx._source.ava = (ctx._source.ava ?: 0) + params.count",
        "lang": "painless",
        "params" : {
            "count" : 4
        }
    },
    "upsert" : {
        "ava" : 1
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48575382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档