在Ember-CLI应用程序中包含Elasticsearch

时间:2015-02-09 04:34:58

标签: ember.js elasticsearch ember-cli

我是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的帮助!

1 个答案:

答案 0 :(得分:1)

您似乎想直接在您的ember应用程序中使用弹性搜索客户端(如果我错了,请更正我)。遗憾的是,您不能直接在ember中使用节点模块,因此您需要以不同的方式构建应用程序。

您有几个选择:

1)在您的ember应用程序(将在浏览器中运行)中使用Ember Data Adapter for elasticsearchember-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
       }
   });

更多细节将取决于您的申请的具体细节。