2012-02-04 13 views
11

さて、MongoDBとElasticsearchを設定する方法について、インターネット上のどこかのドキュメントを検索しました。メインのelasticsearch githubリポジトリにはMongodb riverプラグインがありますが、ドキュメントはありません。誰もが一緒に働くために、この2つの素敵なテクノロジーを手に入れましたか?MongoDB川をElasticsearchに設定する

+21

シェル - それがあることを意味しました。川。 –

答えて

17

これはやや古い質問ですが、他の人が同じ質問をしていると思います。特に、新しいバージョンのESが常に出てきています。私のESがMongoDBでも使えるようになるまでにはしばらく時間がかかりました。

  1. まず、ESとMongoDBがインストールされていると仮定します。レプリカセットを使用していない場合は、oplogsが有効になっていることを確認してください。それを行うにはhereを参照してください。

  2. 川プラグインには依存関係(elasticsearch-mapper-attachments)がありますので、後で問題が発生しないように慎重にインストールしてください。このwikiには、プラグインをインストールするために必要なコマンドがあります。 ES 0.20.2以上を使用している場合は、河川プラグインの代替ダウンロードリンクに注意してください。

  3. ESを再起動します。

  4. は、インデックス作成を有効にするには、次のコマンドを使用します。

    curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d ' 
    { 
        "type": "mongodb", 
        "mongodb": { 
         "db": "your-database-name", 
         "collection": "your-collection-name" 
        }, 
        "index": { 
         "name": "mongoindex", 
         "type": "your-type" 
        } 
    }' 
    
  5. 検索を行うには、curl -XGET 'http://localhost:9200/mongoindex/_search?q=field:value'

を使用し、私はthis websiteから私の情報のほとんどを得たが、私はそれができたと感じましたより合理化され、それゆえ私自身のアプローチです。

0

特定の構成で動作します。 elasticsearch riverプラグインとmongodbのバージョンは、システム全体が動作するために不可欠なものです。ここで

は、作業環境

1を再現するための手順は)elasticsearchバージョン1.2.4を使用しています。それがここに配置されているubuntuのパッケージ:https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.4.deb

dpkg -i /path/to/elasticsearch-1.2.4.deb

2でそれをインストール)川のプラグインとその依存関係をインストールします。

cd /usr/share/elasticsearch && bin/plugin --install elasticsearch/elasticsearch-mapper-attachments/1.9.0 
cd /usr/share/elasticsearch && bin/plugin --install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.1 

マッパーatachmentsプラグインのバージョンが用意されてい新しいが、公式のウィキmongo river pluginは1.9.0を使用することを提案します。

3)MongoDB v2.4.9は必ずelasticsearch riverプラグインで動作します。コンソールをモンゴする ログイン:

mongo 

その後は、入力します。

rs.initiate() 
rs.status() 
を はのmongodが --replSet rs0で起動されるか、次 mongod.confreplSet=rs0を持っている、あなたはレプリカセットがMongoDBの中で開始されていることを確認する必要がありますことを確認してください

4)準備が完了しました。今度はelasticsearch riverプラグインを初期化する必要があります。あなたはelasticsearchローカルホスト上で実行していると仮定すると :9200とMongoDBはMongoのサーバー上10.0.2.15:27017

curl -XPUT "localhost:9200/_river/feed/_meta" -d" 
     { 
      \"type\": \"mongodb\", 
      \"mongodb\": { 
       \"servers\": [ 
       {\"host\": \"10.0.2.15", \"port\": 27017} 
       ], 
       \"db\": \"YOUR_DB\", 
       \"collection\": \"YOUR_COLLECTION\" 
      }, 
      \"index\": { 
       \"name\": \"YOUR_ELASTIC_INDEX\", 
       \"type\": \"item\" 
      } 
     }" 

5)チェックrs.configを()です。 mongodb river pluginで連絡可能な複製セットメンバーの解決可能なホスト名またはipsを含む必要があります。 Elasticsearch Riverプラグインは、mongodb.serversで指定されたホストに接続し、レプリカ設定を取得します。次に、rs.config()で指定されたホスト名でレプリカセットのプライマリホストに接続しようとします。あなたが川のプラグイン経由でmonogdbとelasticsearchを相互接続するためにドッキング用のコンテナを使用しようとしている場合は、それが問題です。

次の手順で、RSの設定を更新できます。

mongo 

、その後、モンゴで「ドライバ」に「川」を編集した男に

cfg = rs.config() 
cfg.members[0].host = "12.34.56.78:27017" 
rs.reconfig(cfg) 
関連する問題