gpt4 book ai didi

elasticsearch - 在Elasticsearch的子聚合中按其他字段排序

转载 作者:行者123 更新时间:2023-12-02 22:40:44 24 4
gpt4 key购买 nike

假设我有一个包含如下文档的索引:

{
id: 1,
carId: 1,
carName: 'Toyota Matrix',
carClass: 'Compact',
insured: false
}

是否可以使用一个Elasticsearch查询,让我拥有一个包含Car ID,Car Name,Car class和#Insured的表(通过聚合),并且每个列都可排序?该表将如下所示:
Car ID | Car name      | Car class | # Insured
-------------------------------------------------------------
1 | Toyota Matrix | Compact | 123
2 | Ford F-150 | Truck | 78
...

我知道我可以在汽车ID上创建汇总,然后在#被保险人上创建子汇总;像这样的东西:
{
"aggs": {
"car_id": {
"terms": {
"field": "carId"
},
"aggs": {
"insured": {
"filter": {
"term": {
"insured": "T"
}
}
}
}
}
}
}

在此过程中,我可以按车号或被保险人分类。但是,我无法按汽车名称或汽车类别进行排序。如果我在car name或car class上创建子聚合,则它不是单值聚合,因此无法对其进行排序。

有什么办法可以对聚合中的其他字段进行排序?

最佳答案

我不确定我是否理解您的真实问题,但是为了对多个字段进行排序,这是解决问题的方法https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html我相信您甚至不需要聚合

{
"sort" : [
{ "insured" : "desc" },
{ "car_name" : "desc" },
{ "car_id" : "desc" },
...
],
"query" : {
"match_all" : {}
}
}

关于elasticsearch - 在Elasticsearch的子聚合中按其他字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com