sql >> Databáze >  >> NoSQL >> MongoDB

Integrace mongodb s elasticsearch v prostředí node.js

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




  1. Jak provést atomovou aktualizaci na EmbeddedDocument v poli ListField v MongoEngine?

  2. Facebook-pas s JWT

  3. Limit hromadného vkládání Mongodb v Pythonu

  4. MongoDb se vypne pomocí kódu 100