私はそれをこのように行いました:
ノードにsails.jsフレームワークを使用し、DBとしてmongoを使用しています。
まず、npmを使用してelasticsearchモジュールをインストールしました。次に、このコードを elasticSeach.jsというファイルに追加しました。 構成セクションで。
次のコードがあります:
var elasticsearch = require('elasticsearch'),
index = "Ur_elastic_index_name_goes_here",
client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
});
module.exports.elasticSearchClient = client;
module.exports.elasticSearchConfig = {
index: index
};
その後、ファイルを作成するだけです ElasticSearchService.js ここでは、検索、更新などのすべての操作を実行します。これは、値にインデックスを付けるelasticsearchインデックスメソッドの例です。
a)タイプ
b)アイテム 、これは
のようなjsonタイプのオブジェクトですitem = {
"name" : "vishal",
"website" : "stackOverflow"
};
方法は
function indexItem(type, item) {
return Q.promise(function(resolve, reject){
elasticSearchClient
.index({
index: elasticSearchConfig.index,
type: type,
body: item
})
.then(function (response) {
sails.log.info("ElasticSearchService#indexItem :: Response :: ", response);
return resolve(response);
})
.catch(function(err) {
sails.log.error("ElasticSearchService#indexItem :: Error :: ", err);
return reject(err);
});
});
}
どこからでもこのメソッドを呼び出します。
私は値を返すためにpromiseを使用しています。シャードの実装などについて心配する必要はありません。 Elasticがそれを処理します。
タイプとマッピングの詳細については、こちらをご覧ください: https://www。 elastic.co/guide/en/elasticsearch/guide/current/mapping.html