【问题标题】:Elasticsearch Java Api: set a field as _idElasticsearch Java Api:将字段设置为_id
【发布时间】:2014-07-25 23:20:31
【问题描述】:

我想问一下唯一字段_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

【问题讨论】:

    标签: elasticsearch elasticsearch-java-api


    【解决方案1】:

    只在索引时提供 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"
            }
        }
    }
    

    如果你在elasticsearch中添加post_id字段,那么它也会变成“_id”。

    【讨论】:

    • 谢谢!顺便说一句,你知道它是否有办法在 MapA 中索引多个字段?
    • 你能用例子作为单独的问题来问吗?如果答案解决了你的问题,为什么不接受呢??
    • 我会开个新帖问问~谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2017-07-04
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多