0

我正在尝试使用 mongo-connector 将数据从 mongodb3.6 推送到 elasticsearch6.1。我的记录是:

db.administrators.find({}).pretty()
{
        "_id" : ObjectId("5701d81893dc484c812b4fc1"),
        "name" : "Test Naupada",
        "username" : "adminn",
        "ward" : "56a6129f44fc869f215fe3fe",
        "password" : "nadmin"
}

rs0:PRIMARY> db.sub_ward_master.find({}).pretty()
{
        "_id" : ObjectId("56a6129f44fc869f215fe3fe"),
        "wardCode" : "3",
        "wardName" : "Naupada",
        "wardgeoCodes" : [],
        "cityName" : "thane"
}

当我运行 mongo-connector 时,出现以下错误:

OperationFailed: (u'1 document(s) failed to index.', [{u'index': {u'status': 400, u'_type': u'administrators', u'_index': u'smartjn', u'error': {u'reason': u'Rejecting mapping update to [smartjn] as the final mapping would have more than 1 type: [sub_ward_master, administrators]', u'type': u'illegal_argument_exception'}, u'_id': u'5701d81893dc484c812b4fc1', u'data': {u'username': u'adminn', u'ward': u'56a6129f44fc869f215fe3fe', u'password': u'nadmin', u'name': u'Test Naupada'}}}

任何帮助任何人?谢谢

4

2 回答 2

1

您可以在 ES6 中通过为不同的文档类型(即 mongoDB 中的不同集合)创建新索引并使用 -g 标志将其定向到新索引来实现。

例如:

mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager -n {db}.{collection_name} -g {new_index}.{document_type}. 

参考mongo-connector-wiki

于 2018-06-08T12:48:07.810 回答
1

ES 6 不允许在任何单个索引中创建多个类型。

mongo-connector repo 中有一个未解决的问题来支持 ES 6。在解决之前,您应该改用 ES 5。

于 2017-12-21T06:59:17.950 回答