【发布时间】:2018-02-09 06:43:39
【问题描述】:
我正在使用弹性搜索来获取一种所有产品的列表(比如相机),但我想根据我从匹配查询中获得的结果动态填充制造商列表。
{
"query": {
"match": {
"product_type" : "CAMERA"
}
}
}
给我一个此类项目的列表(在删除不相关的数据之后)
{
"_score": 11.234668,
"_source": {
"product_type": "CAMERA",
"mfg_name": "SONY"
}
}
我无法汇总文档中的所有mfg_name,因为它还包含其他产品的制造商。我想做什么,获取我查询的产品类型的所有mfg_name。
弹性搜索是否本机支持这一点?我可以链接我的查询,以便match 查询的输出由aggs 查询操作吗?还是我必须写一个服务一个一个地遍历item并获取列表?
编辑:我使用它来获取聚合,因为默认情况下在文本字段上禁用 Fielddata
{
"size": 0,
"aggs" : {
"manufacturer" : {
"terms" : { "field" : "mfg_name.keyword", "size" : 500 }
}
}}
【问题讨论】:
标签: elasticsearch