2015-02-09 33 views
0

我是Ember和Node的新手,我想用Elasticsearch和Ember。在Ember-CLI應用程序中包含Elasticsearch

我正在使用npm elasticsearch包。

從我收集到的信息中,我應該注入ES作爲一種服務,但我不確定在哪裏包含ES初始化代碼並向Ember應用註冊客戶端。

var elasticsearch = require('elasticsearch'); 
var client = new elasticsearch.Client({ 
    host: 'localhost:9200', 
    log: 'trace' 
});` 

我所有的錢,現在是ember g service elasticsearch

我明白了小白的幫助!

回答

1

你似乎想直接在你的應用程序中使用彈性搜索客戶端(糾正我,如果我錯了)。不幸的是,你不能直接在內部使用節點模塊,所以你需要以不同的方式構建你的應用程序。

您有幾種選擇:

1)使用就像在你燼應用Ember Data Adapter for elasticsearchember-data-elasticsearch-kit庫(將在瀏覽器中運行)來查詢彈性搜索。 (我選這些,因爲他們是在谷歌第一的成績 - 他們似乎有點過時,但也許你可以找到最近更新的東西。)

2)創建節點的API端點(並且可能類似於Express),並使用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 
     } 
    }); 

更多詳細信息將取決於您的應用程序的具體情況。

+0

謝謝奧倫。是的,我看到那些適配器,並且它們已經過時,所以我避開它們。我的意圖是做#2的事情,但我不確定如何設置。 – blisstdev 2015-02-09 22:09:49

+0

如果您在應用程序中添加了關於如何嘗試使用elasticsearch的更多細節,我可以嘗試提供更多關於可能實現的細節,以便填補空白。 – 2015-02-09 22:31:41

+0

我正在Ember中實施即時搜索。我有外部XML數據,我想加載到ES中,然後用戶可以通過即時搜索進行搜索。我希望有一些參數可以決定我可以在ES中定義的用戶的相關性。 – blisstdev 2015-02-13 23:27:53

相關問題