Elasticsearch-使用脚本创建字段(如果不存在)

马鲁夫

有没有一种方法可以使用脚本动态添加字段?我正在运行一个检查字段是否存在的脚本。如果没有,则创建它。

我正在尝试:

script: 'if (ctx._source.attending == null) { ctx._source.attending = { events: newField } } else if (ctx._source.attending.events == null) { ctx._source.attending.events = newField } else { ctx._source.attending.events += newField }'

除非attending在我的案例中_source中有一个明确命名的字段,否则我将得到:

[Error: ElasticsearchIllegalArgumentException[failed to execute script];
nested: PropertyAccessException[
    [Error: could not access: attending; in class: java.util.LinkedHashMap]
奥利·克鲁克申克

要检查字段是否存在,请使用ctx._source.containsKey函数,例如:

curl -XPOST "http://localhost:9200/myindex/message/1/_update" -d'
{
   "script": "if (!ctx._source.containsKey(\"attending\")) { ctx._source.attending = newField }",
   "params" : {"newField" : "blue" },
   "myfield": "data"
}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果值不存在,则更新ElasticSearch脚本

来自分类Dev

创建时Elasticsearch的“如果不存在”行为似乎不起作用

来自分类Dev

Elasticsearch:仅检索字段不存在的文档_id

来自分类Dev

如果在Elasticsearch中使用批量处理器不存在索引

来自分类Dev

Elasticsearch获取数据,其中字段不为空/字段为空或字段存在/字段不存在

来自分类Dev

Elasticsearch 5.4 - 如果术语存在,则按术语过滤,不存在术语时不过滤

来自分类Dev

当字段不存在时让ElasticSearch忽略过滤器

来自分类Dev

如果字段存在,ElasticSearch 如何删除文档?

来自分类Dev

Shell脚本-创建目录(如果不存在)

来自分类Dev

PHP脚本创建文件(如果不存在)

来自分类Dev

跨多个索引的Elasticsearch搜索-忽略不存在的索引

来自分类Dev

当文档不存在时,Upsert不会添加新的(ElasticSearch)

来自分类Dev

仅当doc不存在时,Elasticsearch中的批量索引

来自分类Dev

在elasticsearch中搜索null和值(但不存在不存在的值)

来自分类Dev

在elasticsearch中搜索null和值(但不存在不存在的值)

来自分类Dev

Shell脚本检查dir目录是否存在然后更改路径,如果不存在则使用该名称创建dir并检查文件名不存在

来自分类Dev

elasticsearch:使用脚本更新嵌套字段?

来自分类Dev

如果不存在,如何使用Browserify创建新目录?

来自分类Dev

使用PDO创建数据库(如果不存在)

来自分类Dev

使用Oracle SQL Developer如果不存在则创建序列

来自分类Dev

使用mogrify -path命令创建目录(如果不存在)

来自分类Dev

通过使用Nest C#,如何在Elasticsearch查询(EQL)中使用不存在或null?

来自分类常见问题

如果Ruby不存在,则创建目录

来自分类Dev

如果记录不存在则创建

来自分类Dev

Netezza创建表(如果不存在)

来自分类Dev

PostgreSQL:如果不存在,则创建表

来自分类Dev

创建mysql表(如果不存在)

来自分类Dev

创建聚合(如果不存在)

来自分类Dev

附加或创建StringSet(如果不存在)

Related 相关文章

  1. 1

    如果值不存在,则更新ElasticSearch脚本

  2. 2

    创建时Elasticsearch的“如果不存在”行为似乎不起作用

  3. 3

    Elasticsearch:仅检索字段不存在的文档_id

  4. 4

    如果在Elasticsearch中使用批量处理器不存在索引

  5. 5

    Elasticsearch获取数据,其中字段不为空/字段为空或字段存在/字段不存在

  6. 6

    Elasticsearch 5.4 - 如果术语存在,则按术语过滤,不存在术语时不过滤

  7. 7

    当字段不存在时让ElasticSearch忽略过滤器

  8. 8

    如果字段存在,ElasticSearch 如何删除文档?

  9. 9

    Shell脚本-创建目录(如果不存在)

  10. 10

    PHP脚本创建文件(如果不存在)

  11. 11

    跨多个索引的Elasticsearch搜索-忽略不存在的索引

  12. 12

    当文档不存在时,Upsert不会添加新的(ElasticSearch)

  13. 13

    仅当doc不存在时,Elasticsearch中的批量索引

  14. 14

    在elasticsearch中搜索null和值(但不存在不存在的值)

  15. 15

    在elasticsearch中搜索null和值(但不存在不存在的值)

  16. 16

    Shell脚本检查dir目录是否存在然后更改路径,如果不存在则使用该名称创建dir并检查文件名不存在

  17. 17

    elasticsearch:使用脚本更新嵌套字段?

  18. 18

    如果不存在,如何使用Browserify创建新目录?

  19. 19

    使用PDO创建数据库(如果不存在)

  20. 20

    使用Oracle SQL Developer如果不存在则创建序列

  21. 21

    使用mogrify -path命令创建目录(如果不存在)

  22. 22

    通过使用Nest C#,如何在Elasticsearch查询(EQL)中使用不存在或null?

  23. 23

    如果Ruby不存在,则创建目录

  24. 24

    如果记录不存在则创建

  25. 25

    Netezza创建表(如果不存在)

  26. 26

    PostgreSQL:如果不存在,则创建表

  27. 27

    创建mysql表(如果不存在)

  28. 28

    创建聚合(如果不存在)

  29. 29

    附加或创建StringSet(如果不存在)

热门标签

归档