ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Elasticsearch terms使用脚本修改统计的数据源

2026/8/24 9:02:13 拓冰建站 浏览量
Elasticsearch terms使用脚本修改统计的数据源

如:索引中有两个 styleCode(类似spu)跟 goodsCode(类似sku)区分商品;现在需要根据品牌信息为七匹狼的数据使用goodsCode就行统计。

POST xxx_goods_info/_search
{"query": {"bool": {"must": [{"term": {"brand": {"value": "七匹狼"}}},{"match": {"ngStatus": "sj"}}]}},"aggs": {"brand_terms_count": {"terms": {"script": "if(doc.brand.value=='七匹狼'){return doc.goodsCode}else{return doc.styleCode}","size": 10}}}
}
  1. 查询时使用term和match过滤指定的品牌信息和商品状态
  2. aggs.brand_terms_count 使用script对统计来源进行处理,逻辑较为简单,如果是七匹狼品牌,返回goodsCode,其他使用styleCode。

参数也可以使用params传递,script脚本改成如下:

POST xxx_goods_info/_search
{"query": {"bool": {"must": [{"term": {"brand": {"value": "七匹狼"}}},{"match": {"ngStatus": "sj"}}]}},"aggs": {"brand_terms_count": {"terms": {"script": {"source": "if(doc.brand.value==params.brand){return doc.goodsCode}else{return doc.styleCode}","lang": "painless", "params": {"brand":"七匹狼"}},"size": 10}}}
}