Elasticsearch Java Api:将字段设置为_id

时间:2014-07-25 23:20:31

标签: elasticsearch elasticsearch-java-api

我想询问文档中某些字段是否分配了唯一字段_id。我看到Rest,它可以通过path实现:

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

但是如果我想用java API来做,有没有办法实现呢?

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

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

如何修改我的代码以将Map中的某些字段指定为此类型的_id

1 个答案:

答案 0 :(得分:3)

只需在索引时提供id,就像这样

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

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

如果您不想这样做,请将其添加为映射。

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

如果你将post_id字段添加到elasticsearch,那么它也将成为“_id”。