我正在将AngularJS与ElasticSearch一起使用。
到目前为止,我一直在终端中使用curl
命令来使用ElasticSearch。
现在,我希望对AngularJS的 Elasticsearch 索引执行搜索。我该怎么做?我假设使用$ http.get(),但是在任何地方都找不到示例。
基本上,我该如何转换以下内容:
curl -XGET 'http://localhost:9200/twitter/mark/_search?pretty=true&size=100' -d '{
"term": {
"tag": "comedy"
}
}'
Angular请求?那是如何在我的 Controller 内的AngularJS中实现上述目标?
最佳答案
Elasticsearch发布了一个官方的JS客户。您可以在github上找到它:https://github.com/elasticsearch/elasticsearch-js
我发现以下示例https://github.com/elasticsearch/elasticsearch-js/issues/19对设置客户端实例很有帮助。设置好客户端后(客户端为“es”,queryTerm将映射到搜索框或类似框),您可以执行以下搜索:
esApp.controller('SearchCtrl', function($scope, es) {
es.cluster.health(function (err, resp) {
if (err) {
$scope.data = err.message;
} else {
$scope.data = resp;
}
});
$scope.search = function() {
es.search({
index: 'your_index',
size: 50,
body: {
query: {
query_string: {
default_field: 'title',
query: ($scope.queryTerm || '*')
}
}
}
}).then(function (resp) {
$scope.results = resp.hits.hits;
$scope.hitCount = resp.hits.total;
}, function (err) {
$scope.results(err.message);
});
};
关于angularjs - AngularJS + Elasticsearch-如何搜索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853165/