Jeg har gjort det på denne måde:
Jeg bruger sails.js framework til node og bruger mongo som DB.
Først og fremmest har jeg installeret elasticsearch-modulet ved hjælp af npm. Derefter tilføjede denne kode i en fil kaldet elasticSeach.js i konfigurationssektionen.
Den har følgende kode:
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
};
Derefter skal du blot oprette en fil ElasticSearchService.js hvor du skal udføre alle operationer som søgning, opdatering osv. Her er et eksempel på en elastisk søgningsindeksmetode til at indeksere værdierne, som tager :
a) type
b) vare , som er et objekt af json-typen som
item = {
"name" : "vishal",
"website" : "stackOverflow"
};
og metode er
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);
});
});
}
Kald denne metode fra, hvor du vil.
Jeg bruger et løfte om at returnere værdier. Du behøver ikke bekymre dig om implementering af shard og det hele. Det sørger Elastic for.
Mere om type og kortlægninger her :https://www. elastic.co/guide/en/elasticsearch/guide/current/mapping.html