考虑我有一个数据集和多个过滤器, 当用户添加新过滤器或删除新过滤器时,我想知道每个过滤器下有多少记录可以抵抗。
例如我想显示如下结果:
tag1(100)
tag2(130)
city1(77)
city2(95)
如何使用Elasticsearch 6实现这一目标?
请注意,用户已选择城市A作为过滤器,现在他看到按城市过滤的搜索结果
现在其他过滤器就是类别和类型, 如果我也选择B类,或者如果我在类别本身前面选择C类,我想显示记录数。
答案 0 :(得分:0)
对于具有bool查询的过滤器使用以下内容,对每个标记的项目计数使用agg。
文件样本:
{
"id": 8,
"title": "eight",
"tags": [
{"name":"tag1"},
{"name":"tag2"}
]
}
查询:
{
"size":0,
"query" : {
"bool" : {
"must" : [
{ "term" : { "tags.name" : "tag2" } },
{ "term" : { "tags.name" : "tag3" } }
]
}
},
"aggs": {
"tags": {
"terms": {
"field": "tags.name"
}
}
}
}