angularjs - AngularJS + Elasticsearch-如何搜索文档

标签 angularjs elasticsearch

我正在将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/

相关文章:

javascript - Angular 2 : property binding and side effects

python - Elasticsearch结果限制问题

elasticsearch - Elasticsearch从映射中删除 “one level”

angularjs - AngularJS 定义中的命名冲突

javascript - Angular/JavaScript 自动水合实例

javascript - 将对象作为参数传递给指令

javascript - AngularJS 选择属性值而不是对象

elasticsearch - 合并第一个滤波器的输出作为第二个滤波器的输入

php - 具有术语和方面的弹性

node.js - 具有 Express 框架的 ElasticSearch