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

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

json 复制代码
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脚本改成如下:

json 复制代码
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
			}
		}
	}
}
相关推荐
西邮彭于晏16 分钟前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
Elasticsearch1 小时前
Elasticsearch:搜索教程 - 语义搜索(三)
elasticsearch
Elasticsearch1 小时前
Elasticsearch:搜索教程 - 向量搜索(二)
elasticsearch
Devin~Y4 小时前
从本地生活电商到 AI RAG:互联网大厂 Java 面试场景完整实战
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
Elasticsearch16 小时前
Elasticsearch:搜索教程 - 全文搜索(一)
elasticsearch
spider_xcxc18 小时前
Argo CD App of Apps 模式深度解析:像管理应用一样管理应用
大数据·数据库·elasticsearch
Elasticsearch1 天前
你拥有 IP,你想要主机名:为 OpenTelemetry 构建一个查找处理器
elasticsearch
Elasticsearch1 天前
超越调试: GenAI 如何将日志转化为业务智能
elasticsearch
Leo Lab1 天前
EAIDK-610 移植主线U-BOOT
大数据·elasticsearch·搜索引擎
华如锦1 天前
【AGENT开发】python学习 Python Level 5
python·学习·elasticsearch