2013-10-17 40 views
0

我有3個節點的ElasticSearch集羣和3個節點的MongoDb ReplicaSet。我試圖建立河流與此配置:爲MongoDb複製組創建ElasticSearch河

 
curl -XPUT "elasticsearch1:9200/_river/mongodb/_meta" -d '{ 
    "type": "mongodb", 
"servers": 
    [ 
     { "host": "mongodb-serv1", "port": 27017 }, 
     { "host": "mongodb-serv2", "port": 27017 }, 
     { "host": "mongodb-serv3", "port": 27017 } 
    ], 
    "mongodb": { 
     "db": "db_name", 
     "collection": "collection_name", 
     "gridfs": false 
    }, 
    "index": { 
     "name": "index_name", 
     "type": "type_name" 
    } 
}' 

此命令運行正常,但ElasticSearch不試圖從MongoDB中獲取數據。我更新了記錄,但沒有幫助。

是否有特殊的配置連接到副本集?我已經在單個ES和單個MongoDb上嘗試過這種配置,並且工作正常。

回答

1

剛剛搜索並注意到我錯了配置。在我問問題之前花費了更多的時間...

「服務器」必須位於「mongodb」部分內。

 
curl -XPUT "elasticsearch1:9200/_river/mongodb/_meta" -d '{ 
    "type": "mongodb", 
    "mongodb": { 
     "servers": [ 
       { "host": "mongodb-serv1", "port": 27017 }, 
       { "host": "mongodb-serv2", "port": 27017 }, 
       { "host": "mongodb-serv3", "port": 27017 } 
     ], 
     "db": "db_name", 
     "collection": "collection_name", 
     "gridfs": false 
    }, 
    "index": { 
     "name": "index_name", 
     "type": "type_name" 
    } 
}'