考虑我有一个数据集和多个过滤器,当用户添加新过滤器或删除新过滤器时,我想知道每个过滤器下有多少记录抵抗。
例如我想显示这样的结果:
标签 1 ( 100 )
标签 2 ( 130 )
城市 1 ( 77 )
城市 2 ( 95 )
如何使用 Elasticsearch 6 实现这一目标?
考虑一下,用户已选择城市 A 作为过滤器,现在他看到按城市过滤的搜索结果,
现在其他过滤器是例如类别和流派,如果我也选择类别 B,或者如果我选择类别 C,我想在类别本身之前显示记录数。
考虑我有一个数据集和多个过滤器,当用户添加新过滤器或删除新过滤器时,我想知道每个过滤器下有多少记录抵抗。
例如我想显示这样的结果:
标签 1 ( 100 )
标签 2 ( 130 )
城市 1 ( 77 )
城市 2 ( 95 )
如何使用 Elasticsearch 6 实现这一目标?
考虑一下,用户已选择城市 A 作为过滤器,现在他看到按城市过滤的搜索结果,
现在其他过滤器是例如类别和流派,如果我也选择类别 B,或者如果我选择类别 C,我想在类别本身之前显示记录数。
使用以下过滤器进行布尔查询,并使用 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"
}
}
}
}