我有一个要求说我有一组特定于不同配置的文档,我需要返回基于configVersion的最新配置。但我还有其他需要匹配的查询参数。在这种情况下,下面哪一项将是更快的性能。
1)首先使用aggregate列出基于configVersion的最新配置,然后应用查询来获取。 2)首先应用查询以获取匹配的记录,然后应用聚合。
选项1:
{
"size": 10000,
"aggs": {
"finalFilter": {
"terms": {
"field": "configName",
"size": 10000
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {
"configVersion": "desc"
}
}
}
}
}
},
"query": {
"bool": {
"filter": {
"bool": {
"must": [
{
"term": {
"configName": "configuration1"
}
},
{
"term": {
"Application": "Google"
}
},
{
"term": {
"platform": "windows"
}
},
{
"term": {
"ApplicationVersion": "1.1"
}
},
{
"term": {
"country": "uk"
}
}
]
}
}
}
}
}
选项2:
{
"size": 10000,
"query": {
"bool": {
"filter": {
"bool": {
"must": [
{
"term": {
"configName": "configuration1"
}
},
{
"term": {
"Application": "Google"
}
},
{
"term": {
"platform": "windows"
}
},
{
"term": {
"ApplicationVersion": "1.1"
}
},
{
"term": {
"country": "uk"
}
}
]
}
}
}
},
"aggs": {
"finalFilter": {
"terms": {
"field": "configName",
"size": 10000
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {
"configVersion": "desc"
}
}
}
}
}
}
}
由于 Sushma