繁体   English   中英

过滤后使用elasticSearch JAVA api中的updateQuery删除jsonObject

[英]remove a jsonObject using updateQuery in elasticSearch JAVA api after filtering

我的ElasticSearch中有很多数据。 例子之一是

{

    "_index": "some_index",

    "_type": "some_type",

    "_id": "AWDpmuZ9u4O0tj_RL7Zr",

    "_score": 1,

    "_source": {

      "avro_schema": "some_data",

      "md_type": "AA"

    }

我要删除此对象- “ avro_schema”:“ some_data”,。

仅当所有文档中的md_type为AA时。

我想编写一个在ElasticSearch中执行此操作的JAVA API。

到目前为止,我已经做到了。

BoolQueryBuilder query = new BoolQueryBuilder();
  query.should(QueryBuilders.boolQuery().must(QueryBuilders.existsQuery("md_type\":\"AA")));

  UpdateByQueryRequestBuilder ubqrb = UpdateByQueryAction.INSTANCE.newRequestBuilder(client);
  Script script = new Script("ctx._source.remove('avro_schema')");
  BulkByScrollResponse response = ubqrb.script(script)
      .filter(QueryBuilders.termQuery("md_type", "AA"))
      .get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM