sql >> データベース >  >> NoSQL >> MongoDB

node.js環境でのmongodbとelasticsearchの統合

    私はそれをこのように行いました:

    ノードにsails.jsフレームワークを使用し、DBとしてmongoを使用しています。

    まず、npmを使用してelasticsearchモジュールをインストールしました。次に、このコードを elasticSeach.jsというファイルに追加しました。 構成セクションで。

    次のコードがあります:

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

    その後、ファイルを作成するだけです ElasticSearchService.js ここでは、検索、更新などのすべての操作を実行します。これは、値にインデックスを付けるelasticsearchインデックスメソッドの例です。

    a)タイプ

    b)アイテム 、これは

    のようなjsonタイプのオブジェクトです
    item = {
     "name" : "vishal",
     "website" : "stackOverflow"
    };
    

    方法は

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

    どこからでもこのメソッドを呼び出します。

    私は値を返すためにpromiseを使用しています。シャードの実装などについて心配する必要はありません。 Elasticがそれを処理します。

    タイプとマッピングの詳細については、こちらをご覧ください: https://www。 elastic.co/guide/en/elasticsearch/guide/current/mapping.html




    1. 計算された条件でのMongoソート

    2. MongoDBでコレクションを日付で並べ替える方法は?

    3. MongoConnectionを待機するタイムアウト

    4. MongoDBの2つのコレクションからのデータをマージする方法