我正在尝试将来自弹性搜索的地理形状查询集成到我的angularjs代码中,以生成一个http请求来获取驻留在elasticsearch本地实例上的数据,但是控制台会抛出错误,即无效的XMLhttp参数。我想这与我如何使用我的URL添加geojson有关。以下是我创建 http请求
的功能function spatialsearch() {
var _url = '127.0.0.1:9201/_search?';
var b = {
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_shape": {
"metadata.o2r.spatial.geometry": {
"shape": {
"type": "polygon",
"coordinates": [
[
[-22.0, 76.0],
[-27.0, 65.0],
[-57.0, 65.0],
[-59.0, 76.0],
[-22.0, 76.0]
]
]
},
"relation": "contains"
}
}
}
}
}
};
_url += b;
return $http.get(_url);
console.log("hello");
}
以下是我在angularjs的js文件中调用http请求的方法
function callingspatialsearch(){
var deferred = $q.defer();
httpRequests.
spatialsearch()
.then(cb1)
.catch(errorHandler);
return deferred.promise;
function cb1(response){
$log.debug('result of search: %o', response);
deferred.resolve(response);
}
function errorHandler(e){
$log.debug('search error: %o', e);
deferred.resolve(e);
}
}
在我的HTML中,我添加了一个按钮,以便在用户点击按钮时显示结果。
<md-button ng-click="vm.button()" class="search-button md-primary md-raised white-font">Spatial</md-button>
答案 0 :(得分:0)
我正在使用$http.post(_url)
代替GET,这有助于我检索结果