当前位置: 首页 > 面试题库 >

如何使用curl在elasticsearch中删除arraylist值?

温凯
2023-03-14
问题内容

如何使用感知控制台或curl在Elasticsearch中删除arraylist值?

我想删除任何数组元素。

POST /q/q/
{
    "a": [
    "z", "q", "1"
    ]
}

它对我不起作用:

POST /q/q/AV4sjk40mWHLgYFNkmNd/_update
{
    "script": {
        "lang": "painless",
        "inline": "ctx._source.a -=newsupp",
        "params": {
            "newsupp": "p" 
        }
     }
}

要么

POST /q/q/AV4sjk40mWHLgYFNkmNd/_update
{
    "script": {
        "lang": "painless",
        "inline": "ctx._source.a.remove("1")"
    }
}

问题答案:

如果要删除列表中的所有事件,可以执行以下操作:

{
  "script": {
    "lang": "painless",
    "inline": "ctx._source.a.removeAll(Collections.singleton('1'))"
  }
}

或者,如果您只想删除第一个,例如:

{
  "script": {
    "lang": "painless",
    "inline": "ctx._source.a.remove(ctx._source.a.indexOf('1'))"
  }
}

另请注意,如果您想使用双引号就可以了,但是您需要将其转义,例如ctx._source.a.indexOf(\"1\"))

或带有参数:

{
  "script": {
    "lang": "painless",
    "inline": "ctx._source.a.remove(ctx._source.a.indexOf(yourParamName))",
    "params": {
      "yourParamName": "1"
    }
  }
}


 类似资料:
  • 我有一个\u索引:varnish\u日志和\u类型:varnish 具有两个不同值的字段“server”:“India”和“server”:“usa” 现在我只想删除在美国的记录。 我试过用 $curl-XDELETE'http://localhost:9200/_all/_query?q=server:美国' 响应:未找到uri[]和方法的处理程序[DELETE] 请告诉我哪里错了

  • 但是我们不能在集合中存储HashMap。我想要HashMap与键,值对作为返回值,这将被添加到列表中。也就是说,最终的值应该采用ArrayList>格式。 你能在这方面帮助我吗?谢了。

  • 您好,我是python和elasticsearch的新手。我在本地设置了Elasticsearch,并向其中添加了数据。http://127.0.0.1:9200/index_data/type_data. 我想从type\u数据中删除一些\u id。假设要删除的\u id列表为x=['a','b','c.'d'。 curl-XDELETE“localhost:9200/index\u data/

  • 问题内容: 我创建具有指定文档类型“ mytype”的索引“ myindex”。我可以删除索引,但是似乎“ mytype”仍然存在而没有与索引绑定。 如何摆脱“ mytype”? 问题答案: 如果您确实删除了索引,则该索引中的映射将不再存在。集群中是否还有其他具有相似类型名称的索引? 要回答问题:,请使用Delete Mapping API : 编辑 :从elasticsearch 2.0,将不再

  • 所以我正在尝试创建这个循环,它可以从ArrayList中移除给定字符串中的特定字符。问题是,当一行中有两个相同的字符时,它会遗漏第二个字符,因为当第一个字符被移除时,第二个字符会在数组列表中向下推一个位置。这是我目前所掌握的。有人知道怎么解决这个吗?我仍然是java的初学者,所以任何帮助都将非常感谢。 从本例中打印出来的内容在:[u,B,u,o,p]之后,而我希望它在:[u,u,o,p]之后

  • 这段代码运行良好,但我想知道它的性能,我指的是它的总体时间复杂度?