更新我还更新了映射以包含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/