我正在尝试进行单个查询来更新 ES 索引中的一个字段值。
我有一个索引pages,其中包含有关页面的信息(id、、、、name等)timeparent_page_idchild_count
我可以parent_page_id使用具有此页面的文档数量id更新该字段parent_page_id
我可以使用默认的单个值更新字段,例如:
PUT HOST_ADDRESS/pages/_update_by_query
{
"script": {
"source": "def child_count = 0; ctx._source.child_count = child_count;",
"lang": "painless"
},
"query": {
"match_all": {}
}
}
我正在尝试使用此代码来获取孩子的数量,但它不起作用。
"source": "def child_count = 0; client.prepareSearch('pages').setQuery(QueryBuilders.termQuery("parent_page_id", "ctx._source.id")).get().getTotal().getDocs().getCount(); ctx._source.child_count = child_count;",
"lang": "painless"
我的问题是,我怎样才能script在变量中进行子计数查询以使真正的子计数child_count