我是Ember和Node的新手,我想将Elasticsearch与Ember一起使用。
我正在使用npm elasticsearch包。
从我收集的内容来看,我应该将ES作为服务注入,但我不确定在哪里包含ES初始化代码并使用Ember应用程序注册客户端。
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
});`
我现在所拥有的只是ember g service elasticsearch
我很感谢noob的帮助!
答案 0 :(得分:1)
您似乎想直接在您的ember应用程序中使用弹性搜索客户端(如果我错了,请更正我)。遗憾的是,您不能直接在ember中使用节点模块,因此您需要以不同的方式构建应用程序。
您有几个选择:
1)在您的ember应用程序(将在浏览器中运行)中使用Ember Data Adapter for elasticsearch或ember-data-elasticsearch-kit等库来查询弹性搜索。 (我之所以选择这些,因为它们是谷歌的第一个结果 - 它们似乎有点过时了,但也许你可以找到更新的更新内容。)
2)使用节点(可能类似Express)创建API端点,并使用elasticsearch
模块和弹性搜索客户端查询服务器上的弹性搜索返回您可以在ember应用程序中使用的JSON。所以,例如:
$.ajax({
url: 'UrlOfMethodExposedByNode',
type: 'GET',
accepts: 'application/json',
success: function(data) {
// you can use the data here to set a value on a controller, etc
},
error: function() {
// something went wrong while retrieving data from your API
}
});
更多细节将取决于您的申请的具体细节。