假設我在ES中有以下文檔,每個文檔都有3個字段:f1,f2和score。 我想找到的所有文件,按F1,F2和秩序由組最高分,在SQL我可以簡單地這樣做:ElasticSearch 2階段聚合後的訂單
select f1,f2,score from table group by f1,f2 order by max(score)
什麼是elasticsearch等價?嵌套術語聚合不會給出正確的順序,因爲返回的f2術語桶全部嵌套在f1術語的同一個桶中。
假設我在ES中有以下文檔,每個文檔都有3個字段:f1,f2和score。 我想找到的所有文件,按F1,F2和秩序由組最高分,在SQL我可以簡單地這樣做:ElasticSearch 2階段聚合後的訂單
select f1,f2,score from table group by f1,f2 order by max(score)
什麼是elasticsearch等價?嵌套術語聚合不會給出正確的順序,因爲返回的f2術語桶全部嵌套在f1術語的同一個桶中。
下聚集的工作應該基於字段1和字段2
{
"aggs": {
"fileCombo": {
"terms": {
"script": "doc['field1'].value + doc['field2'].value",
"order": {
"maxScore": "desc"
}
},
"aggs": {
"maxScore": {
"max": {
"field": "score"
}
}
}
}
}
}
第一聚集。 下一個按最大字段順序。
這涉及到多個字段聚合,這是[這裏提到](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_multi_field_terms_aggregation )目前的ES不支持。 不過,我不確定是否有其他方法。 – boh
這裏的得分是多少? –
它只是文檔的另一個字段。 – boh