我一直在尝试运行带有两个节点的elasticsearch服务器。 我有一个AngularJS应用程序(在Node.js中)有两个视图/ js文件和 在每个js文件中,我想通过elasticsearch进行单独搜索。
直到现在,我在不同的localhost端口上运行两个不同的elasticsearch服务器。基于该设置,至少两个不同的视图起作用(即,示出了正确的结果)。 我试图根据elasticsearch页面上的信息在一台服务器上创建两个节点。但后来我不知道如何在我的视图中接近两个节点。
以下是我创建两个服务器的源代码:
"use strict";
(function () {
var users=angular.module('myApp.users',['elasticsearch','chart.js'])
users.controller('usersCtrl', function ($scope,elasticClient) {
console.log("init users module");
});
users.factory('elasticClient', ['esFactory', function(esFactory) {
return esFactory({
hosts: [
'localhost:9200'
],
sniffOnStart: true,
sniffInterval: 300000
});
}]);
users.factory('elasticClient1', ['esFactory', function(esFactory) {
return esFactory({
hosts: [
'localhost:9201'
],
sniffOnStart: true,
sniffInterval: 300000
});
}]);
}) ();
然后我的两个视图的JS代码: 视图1:
'use strict';
angular.module('myApp.view1', ['ngRoute', 'myApp.users'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view1', {
templateUrl: 'view1/view1.html',
controller: 'View1Ctrl',
controllerAs: 'View1'
});
}])
.controller('View1Ctrl', ['$scope','elasticClient', function($scope, elasticClient) {
elasticClient.search({
// Query.
}).then(function (resp) {
// Do SOmething with results.
});
}]);
视图2:
'use strict';
angular.module('myApp.view2', ['ngRoute', 'myApp.users'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view2', {
templateUrl: 'view2/view2.html',
controller: 'View2Ctrl',
controllerAs: 'View2'
});
}])
.controller('View2Ctrl', ['$scope','elasticClient1', function($scope, elasticClient1) {
elasticClient1.search({}).then(function (resp1) {});
}]);
如果有人可以帮忙的话会很棒!
干杯, 岸堤
答案 0 :(得分:0)
View 1和View 2 JavaScript都有一个额外的JAVA_OPTS=-Xmx2048m -XX:MaxPermSize=768m
JAVA_TOOL_OPTIONS=-Xmx1024m -XX:MaxPermSize=512m -Xms512m
,导致./gradlew :app:TestMockDebug
,}
和}
无法匹配。两者都直接跟随每个观点' ]
。