【问题标题】:sorting elasticsearch top hits results对 elasticsearch 热门搜索结果进行排序
【发布时间】:2016-05-21 17:49:17
【问题描述】:

我正在尝试在 elasticsearch 中执行查询,以获取特定日期范围内特定用户的结果。结果应按 userId 分组并在 trackTime 字段上排序,我可以通过聚合使用 group 但我无法在 tracktime 上对聚合桶进行排序,我写下以下查询

GET _search
{
"size": 0,
"query": {
    "filtered": {
        "query": {
            "bool": {
                "must": [
                    {
                        "range": {
                            "trackTime": {
                                "from": "2016-02-08T05:51:02.000Z"
                            }
                        }
                    }
                ]
            }
        },
        "filter": {
            "terms": {
                "userId": [
                    9,
                    10,
                    3
                ]
            }
        }
    }
},
"aggs": {
    "by_district": {
        "terms": {
            "field": "userId"
        },
        "aggs": {
            "tops": {
                "top_hits": {
                    "size": 2
                }
            }
        }
    }
}
 }

我还应该使用什么来对热门结果进行排序?在此先感谢...

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    你可以使用sortlike。

    "aggs": {
    "by_district": {
        "terms": {
            "field": "userId"
        },
        "aggs": {
            "tops": {
                "top_hits": {
                    "sort": [
                        {
                            "fieldName": {
                                "order": "desc"
                            }
                        }
                    ],
                    "size": 2
                }
            }
            }
         }
     }
    

    希望对你有帮助

    【讨论】:

    • @Richa 我处于类似情况。我在 Top_hits 聚合下的 Sort 字段名就像更深了 2 个级别。例如:“sort”:{“user.name.fieldName”:{“order”:“desc”}} ..它在这种情况下不起作用。有什么想法吗?
    • @Arivazhagan Jeganathan:对我有用。用户类型是nested吗?
    • @Richa 有点嵌套。但没有关联的数组或多个值。希望我很清楚。
    • 如果它是嵌套的,你可以阅读这个链接elastic.co/guide/en/elasticsearch/guide/current/…
    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2013-04-28
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多