angularjs - 如何将 Elastic Search 与 Meanjs (Mongodb、Express、Angular、Nodejs) 集成

标签 angularjs node.js mongodb elasticsearch meanjs

我已经使用 grunt 安装了 MEANJS 。其现有模块工作正常。问题是我正在尝试将 Elastic Search 与 Angular Js 集成。但没有得到任何正确的解决方案。当我将 Elasticsearch 连接到 server.js 时。然后在终端上显示搜索结果。如何通过Angular js在首页显示搜索结果。

我还想将弹性数据库与mongodb数据库连接,以便 Elasticsearch 自动更新。任何建议对我来说都非常有帮助。 为了通过 Elasticsearch 进行连接,我正在使用

  var MyOpenRecipes = angular.module('myOpenRecipes', ['elasticsearch'],
['$locationProvider', function($locationProvider){
    $locationProvider.html5Mode(true);
}]
);


  MyOpenRecipes.factory('recipeService',
['$q', 'esFactory', '$location', function($q, elasticsearch, $location){
    var client = elasticsearch({
        host: $location.host() + ":9200"
    });

    /**
     * Given a term and an offset, load another round of 10 recipes.
     *
     * Returns a promise.
     */
    var search = function(term, offset){
        var deferred = $q.defer();
        var query = {
            "match": {
                "_all": term
            }
        };

        client.search({
            "index": 'facilities',
            "type": 'facility',
            "body": {
                "size": 10,
                "from": (offset || 0) * 10,
                "query": query
            }
        }).then(function(result) {
            var ii = 0, hits_in, hits_out = [];
            hits_in = (result.hits || {}).hits || [];
            for(;ii < hits_in.length; ii++){
                hits_out.push(hits_in[ii]._source);
            }
            deferred.resolve(hits_out);
        }, deferred.reject);

        return deferred.promise;
    };


    return {
        "search": search
    };
}]
 );

最佳答案

本质上你想要做的是:

  • 运行 Elastic Search (ES) 服务器。
  • 在服务器端代码 (MEAN) 上,您将编写一个处理搜索的路由。
  • 让您的 Angular 代码将请求发送到通过 ES 进行搜索的后端路由。

你不想让 Angular 通过网络直接与 ES 对话——据我所知,没有办法安全地做到这一点。

关于angularjs - 如何将 Elastic Search 与 Meanjs (Mongodb、Express、Angular、Nodejs) 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26743972/

相关文章:

javascript - AngularJS:让元素跟随光标

mongodb - $indexOfArray 将数组元素字段与值匹配

node.js - 您应该向用户发送数据库错误吗?

angularjs - Web API 通过 URL 加载,但从 Angular 脚本中获取错误 404

javascript - 有什么方法可以通过单击外部来关闭 Angular UI 工具提示吗?

javascript - 使用 passport-saml 注销 Idp session

node.js - 简单的 NodeJS socketIO 服务器抛出错误

ruby-on-rails - 一个模型中相同类型的多个多态关系 - MongoID

angularjs - 如何在 angular-ui 中动态禁用 ui-sortable 指令

javascript - 使用SSI或grunt将所有shtml文件编译为一个html文件