尝试按顺序对数据进行分组并采用其所有字段。
GET /testnews/default/_search
{
"size": 10,
"from":50,
"query":{
"multi_match": {
"query": "serenay",
"fields": ["Data.Title", "Data.Description", "Data.Tags.Title", "Data.MentionTitle", "Data.Program.title", "Data.Program.description", "Data.Program.original_title"]
}
},
"sort":[{
"Data.CreatedAt": {
"order": "desc"
},
"Data.ViewCount": {
"order": "desc"
}
}],
"aggs": {
"group_by_state": {
"terms": {
"field": "Data.Program.title.keyword"
}
}
}
}
但是当我这样做时,它只返回" Program Title"在分组结果中。 就像:
{
"key": "Kocamın Ailesi",
"doc_count": 3
}
但我只想要它:
{
"key": "Kocamın Ailesi",
"description": "blabla",
"image": "blabla.jpg",
"date": "YYYY-mm-dd",
"doc_count": 3
}
就像sql
一样select * from x group by field
答案 0 :(得分:0)
关于SQL示例,要获取
的行为columns.Template(@<text>@Html.ActionLink(@item.DocumentPathList.ToString(), "GetDocuments", "Controller") </text>).ClientTemplate("<a href='#=DocumentPathList#</a>").Title("Docs");
你可以聚合a,然后b像这样:
select a, b, count(*) from x group by a, b
但我不认为这就是你要找的东西吗? 如果您想要聚合中的完整文档,可以使用&#34; top_hits&#34;聚合以选择每个聚合中的前n个命中:
"aggs": {
"group_by_a": {
"terms": {
"field": "a"
},
"aggs": {
"group_by_b": {
"terms": {
"field":"b"
}
}
}
}
}