本文主要是介绍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}}}
}
- 查询时使用term和match过滤指定的品牌信息和商品状态
- 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}}}
}
这篇关于Elasticsearch terms使用脚本修改统计的数据源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!