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

Including Elasticsearch in Ember-CLI application

我是 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

感谢菜鸟的帮助!

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

您有几个选择:

1) 在您的 ember 应用程序中使用像 Ember Data Adapter for elasticsearch or ember-data-elasticsearch-kit 这样的库(它将在浏览器中 运行 )查询弹性搜索. (我选择这些是因为它们是 Google 中的第一个结果 - 它们似乎有点过时,但也许您可以找到更新较新的内容。)

2) 创建一个带有节点的 API 端点(也许类似于 Express)并使用 elasticsearch 模块和弹性搜索客户端查询服务器上的弹性搜索和 return JSON,您可以在 ember 应用程序中使用它。所以,例如:

    $.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
       }
   });

更多详细信息将取决于您的应用程序的具体情况。