sql >> Databasteknik >  >> NoSQL >> MongoDB

Integration av mongodb med elasticsearch i node.js-miljö

Jag har gjort så här:

Jag använder sails.js framework för nod och använder mongo som DB.

Först och främst har jag installerat elasticsearch-modulen med npm. Sedan lade jag till den här koden i en fil som heter elasticSeach.js i konfigurationsavsnittet.

Den har följande kod:

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
};

Efter det skapar du bara filen ElasticSearchService.js där du kommer att göra alla operationer som sökning, uppdatering etc. Här är ett exempel på en elasticsearch-indexmetod för att indexera värdena, vilket tar :

a) typ

b) objekt , som är ett objekt av json-typ som

item = {
 "name" : "vishal",
 "website" : "stackOverflow"
};

och metoden är

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);
      });
  });
}

Ring den här metoden var du vill.

Jag använder ett löfte om att returnera värden. Du behöver inte oroa dig för implementering av skärvor och allt. Elastic tar hand om det.

Mer om typ och mappningar här :https://www. elastic.co/guide/en/elasticsearch/guide/current/mapping.html




  1. Hur förbättrar jag Redis-serverns CPU-användning?

  2. Hur kan jag aktivera libmongoc ssl i PHP 7 för Mongodb-anslutning?

  3. Redigo ScanStruct-fel med time.Time

  4. Aggregat ramverk kan inte använda index