3

I want to ask if the unique field _id be assigned by certain field within document. I see with Rest, it can achieve by path:

{
  "tweet": {
    "_id": {
      "path": "post_id"
    }
  }
}

But if I want to do it with java API, is there any way to achieve it?

Map<String, Object> MapA= new HashMap<String, Object>();
MapA=MapProcessor(MapA);

client.prepareIndex("index","type").setSource(MapA).execute().actionGet();

How could I modify my code to assign certain field in Map to become _id of this type?

Saeed Zhiany
  • 2,051
  • 9
  • 30
  • 41
user30851
  • 85
  • 2
  • 5

1 Answers1

5

just provide id while indexing, like this

Map<String, Object> MapA= new HashMap<String, Object>();
MapA=MapProcessor(MapA);

client.prepareIndex("index","type",MapA.get("post_id")).setSource(MapA).execute().actionGet();

If you don't want to do this, add this as mapping then.

{
    "tweet" : {
        "_id" : {
            "path" : "post_id"
        }
    }
}

if you add post_id field to elasticsearch, then it will become "_id" too .

progrrammer
  • 4,475
  • 2
  • 30
  • 38