我正在尝试将geoshape查询从弹性搜索集成到我的angularjs代码中,以提出HTTP请求,以获取位于Elasticsearch local实例上的数据无效的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>
我正在使用$http.post(_url)
而不是GET,这有助于我检索结果