用javascript api使用弹性search插入到数组中
我想添加一些东西到数组“tags”:[“red”]
在弹性search使用JavaScript api
,目前,我这样做,如下所示:
client.update( "test":{ "index": "test", "type": "type1", "id": "1", "body": { "script": "ctx._source.tags += tag", "params": { "tag": "blue" } } })
这将字段"tags" : ["red"]
更改为"tags" : blue
而不是["red","blue"]
,
我正在通过Ubuntuterminal使用curl -XPUT or curl -XPOST
方法获得预期的输出
我的节点模块弹性search版本是2.4.2
弹性search服务器是1.3.2
请帮忙…
ElasticSearch脚本引擎不支持JavaScript,请阅读: 为什么不是JavaScript 。
要添加一个项目到一个array
,使用add()
函数而不是+=
curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{ "script":"ctx._source.tags.add(tag)", "params":{"tag":"blue"} }'