计算ElasticSearch

时间:2017-04-03 22:26:49

标签: elasticsearch elasticsearch-aggregation

我正在尝试计算从弹性搜索返回位置的结果集的平均值。这是我正在尝试的。

'aggs' => [
            "avg_location" => [
                'avg' => [
                    'field' => 'location'
                ]
            ]
        ]

这会返回错误,因为位置本身就是一个返回该点[lat,long]的对象/数组。我需要计算所有返回点数的平均值。

我该怎么做?我尝试了很多东西,但没有一个能奏效。

以下是整个代码。

$json = [
        'query' => [
            'bool' => [
                'must_not' => [
                    'terms' => ['rarity' => []],
                ],
                'must' => [
                    'range' => [
                        'disappearTime' => [
                            'gte' => 'now',
                            'lte' => 'now+1d'
                        ]
                    ]
                ],
                'filter' => [
                    [
                        'geo_bounding_box' => [
                            'location' => [
                                'top_left' => [
                                    'lat' => $northWestLat,
                                    'lon' => $northWestLng
                                ],
                                'bottom_right' => [
                                    'lat' => $southEastLat,
                                    'lon' => $southEastLng
                                ]
                            ]
                        ]
                    ]
                ]
            ]
        ],
        'aggs' => [
            "avg_location" => [
                'avg' => [
                    'field' => 'location'
                ]
            ]
        ]
    ];

由于

0 个答案:

没有答案