gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:04:03 26 4
gpt4 key购买 nike

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

我也想连接elastic数据库和mongodb数据库,这样elastic search就可以自动更新了。任何建议对我都非常有帮助。通过我正在使用的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com