Ik heb het op deze manier gedaan:
Ik gebruik sails.js framework voor node en gebruik mongo als DB.
Allereerst heb ik de elasticsearch-module geïnstalleerd met npm.Vervolgens heb ik deze code toegevoegd in een bestand met de naam elasticSeach.js in configuratiegedeelte.
Het heeft de volgende 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
};
Maak daarna gewoon een bestand ElasticSearchService.js waarin u alle bewerkingen uitvoert, zoals zoeken, bijwerken enz. Hier is een voorbeeld van een elasticsearch-indexmethode om de waarden te indexeren, die duurt:
a) type
b) item , wat een object is van het json-type zoals
item = {
"name" : "vishal",
"website" : "stackOverflow"
};
en methode is
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);
});
});
}
Roep deze methode aan waar je maar wilt.
Ik gebruik een belofte om waarden te retourneren. U hoeft zich geen zorgen te maken over de implementatie van de shard en zo. Elastic zorgt daarvoor.
Meer over type en mapping hier:https://www. elastic.co/guide/en/elasticsearch/guide/current/mapping.html