现有索引tnp_product 的mapping结构如下:
{
"tnp_product_sku_type": {
"_routing": {
"required": true
},
"_parent": {
"type": "tnp_product_type"
},
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
}
}
},
"tnp_product_type": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
}
}
}
}
由于业务需要,需要使用es的painless脚本计算一些数据,使用java的api构建搜索对象:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
Search search = (new Search.Builder(searchSourceBuilder))
.addIndex("tnp_product")
.addType("tnp_product_sku_type")
.build();
searchSourceBuilder里边是一些查询参数,全部的构建逻辑就不展示了,只拿searchSourceBuilder里边的一个脚本参数说明:
在painless脚本里边我想获取tnp_product_sku_type的父类型(tnp_product_type)怎么写?
目前我只会params._source.name这种方式获取tnp_product_sku_type的name属性,请问怎么获取tnp_product_sku_type的父亲tnp_product_type,并且能得到tnp_product_type的name?
展开