Udělal jsem to takto:
Používám rámec sails.js pro uzel a jako DB používám mongo.
Nejprve jsem nainstaloval modul elasticsearch pomocí npm. Poté jsem přidal tento kód do souboru s názvem elasticSeach.js v sekci konfigurace.
Má následující kód:
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
};
Poté jednoduše vytvořte soubor ElasticSearchService.js ve kterém budete provádět všechny operace, jako je vyhledávání, aktualizace atd. Zde je příklad indexové metody elasticsearch pro indexování hodnot, která trvá:
a) typ
b) položka , což je objekt typu json jako
item = {
"name" : "vishal",
"website" : "stackOverflow"
};
a metoda je
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);
});
});
}
Volejte tuto metodu odkudkoli.
Používám slib, že vrátím hodnoty. Nemusíte se starat o implementaci fragmentů a tak dále. Elastic se o to postará.
Více o typu a mapování zde:https://www. elastic.co/guide/en/elasticsearch/guide/current/mapping.html