Ich habe es so gemacht:
Ich verwende das sails.js-Framework für den Knoten und Mongo als DB.
Zuerst habe ich das Elasticsearch-Modul mit npm installiert. Dann habe ich diesen Code in einer Datei namens elasticSeach.js hinzugefügt im Konfigurationsabschnitt.
Es hat den folgenden Code:
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
};
Erstellen Sie danach einfach eine Datei ElasticSearchService.js in dem Sie alle Operationen wie Suchen, Aktualisieren usw. ausführen. Hier ist ein Beispiel für eine Elasticsearch-Indexmethode zum Indizieren der Werte, die Folgendes benötigt:
a) tippen
b) Element , das ein Objekt vom Typ json wie
istitem = {
"name" : "vishal",
"website" : "stackOverflow"
};
und Methode ist
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);
});
});
}
Rufen Sie diese Methode von überall aus auf.
Ich verwende ein Versprechen, um Werte zurückzugeben. Sie müssen sich nicht um die Shard-Implementierung und alles kümmern. Elastic kümmert sich darum.
Mehr über Typen und Mappings hier:https://www. elastic.co/guide/en/elasticsearch/guide/current/mapping.html