假设我有一个帖子索引,其数据如下所示:
{
"title": "Some Recipe",
"book_id": 123,
"content": "A list of ingredients",
"tags": ["apple", "cinnamon", "honey"]
}
我希望有一个查询来检索以给定词组开头的所有标记以及包含该标记的帖子数。
到目前为止,我已尝试过以下方法:
{
"size": 0,
"query": {
"bool": {
"must": {
"term": {
"book_id": 123
}
}
}
},
"aggs": {
"tags": {
"filter": { "prefix": { "tags": "app" } },
"aggs": {
"tags" : { "terms": { "field": "tags" } }
}
}
}
}
我相信它会返回所有文档中的所有标记以及标记以app
开头的文档数。
是否可以撤回所有以app
开头的标记,在本例中为apple
,以及包含该标记的文档数量?
答案 0 :(得分:0)
terms
聚合允许您使用include
设置filter the values条款。试试这个:
{
"size": 0,
"query": {
"bool": {
"must": {
"term": {
"book_id": 123
}
}
}
},
"aggs": {
"tags": {
"filter": { "prefix": { "tags": "app" } },
"aggs": {
"tags" : {
"terms": {
"field": "tags",
"include": "app.*" <--- add this
}
}
}
}
}
}