geolocation - ElasticSearch 中的地理排序和距离计算不起作用

标签 geolocation elasticsearch geopoints

更新我还更新了映射以包含pin,如示例所示。另外,这里有一个临时实例,其中包含一些可以使用的数据:https://21991e47cdc7caa8000.qbox.io/profiles/lead/_search

我已关注instructions by ElasticSearch 。使用此请求:

$.ajax({
        url: 'https://21991e47cdc7caa8000.qbox.io/profiles/lead/_search', 
        method: 'GET', 
        data: {
            sort: [{
                _geo_distance: {
                    "pin.location": [49.8998, -97.1375], 
                    order: "asc", 
                    unit: "km"
                }
            }]
        }, 
        success: function(response) {
            console.log(response);
        }
    });

不返回计算的距离或按距离排序。我还尝试过使用“location”

这是我的映射:https://21991e47cdc7caa8000.qbox.io/profiles/lead/_mapping

有什么想法吗?

最佳答案

我已经成功让它工作了,请看看区别,

我在查询之前将数据转换为json,并添加了一些配置(将dataType更改为json,将请求类型更改为POST,因为我们知道GET请求一般没有body,只有POST请求有body .

var request = {
    sort: [{
        _geo_distance: {
            "pin.location": [
            49.8998, -97.1375],
            order: "asc",
            unit: "km"
        }
    }]
};


$.ajax({
    url: 'https://21991e47cdc7caa8000.qbox.io/profiles/lead/_search',
    type: 'POST',
    crossDomain: true,
    dataType: 'json',
    data: JSON.stringify(request),
    success: function (response) {
        console.log(JSON.stringify(response));

    }
});

希望这有帮助。

我已经测试过了,它应该也适合你。

关于geolocation - ElasticSearch 中的地理排序和距离计算不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25123065/

相关文章:

elasticsearch - ElasticSearch-带有过滤器的自定义分析器-未应用过滤器

Android 我的位置修复

java - 如何从 firestore 检索我的 Geopoint 对象

android - 如何获取位置或只是一个 id 以提供基于位置的内容?

javascript - 动态获取当前 LatLng(Google map )

elasticsearch - Logstash:处理特殊的日志格式

javascript - 使用 Parse Javascript SDK 查询 GeoPoint withinMiles

android - 查找附近的应用用户(iPhone 和 Android)

javascript - ionic 3 : Cannot read property 'nativeElement' of undefined TypeError: Cannot read property 'nativeElement' of undefined

java - 使用 Spring Data ElasticsearchRepository 在 ElasticSearch 中查找唯一字段值