Search code examples
mongodbelasticsearchelasticsearch-6

elasticsearch 6 not allowing multiple types when trying to pipeline with mongo-connector


I am trying to push data from mongodb3.6 to elasticsearch6.1 using mongo-connector. My records are:

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

When I run mongo-connector I am getting following error:

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

Any help any one? Thanks


Solution

  • ES 6 does not allow to create more than one type in any single index.

    There's an open issue in the mongo-connector repo to support ES 6. Until that's solved, you should go with ES 5 instead.