我的弹性搜索中有很多数据。 其中一个例子是,
{
"_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时。
我想编写一个JAVA API,它在elasticSearch中执行此操作。
截至目前,我已经做到了这一点......
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();
答案 0 :(得分:0)