如何在 elasticsearch 中使用对象及其引用索引 Json 对象?

How to index a Json object with object and its reference in elasticsearch?

最近在用Elasticsearch,遇到一个问题不知道怎么解决

我有一个Json喜欢:

{
  "objects": [
    "object1": {
     "id" : "12345",  
     "name":"abc"
    },
    "12345"
   ]
}

Object2 是 object1 的引用,当我试图保存(或称为索引)到弹性搜索时,它说:

"org.elasticsearch.index.mapper.MapperParsingException: failed to parse"

经过我google我发现因为object1是一个对象,而object 2被认为是一个字符串。
我们无法在我们的项目中更改我们的json,所以在这种情况下我如何将它保存在elasticsearch中?

感谢您的帮助和建议。

你是怎么做到的?
我 运行 这个命令并且有效。

PUT test/t1/1
{
  "objects": {
    "object1": {
     "id" : "12345",  
     "name":"abc"
    },
    "object2": "12345"
   }
}  

结果是:

{
   "_index": "test",
   "_type": "t1",
   "_id": "1",
   "_version": 1,
   "result": "created",
   "_shards": {
      "total": 2,
      "successful": 2,
      "failed": 0
   },
   "created": true
}

更新 1 根据您的要求,其中一项可能会解决您的问题:

PUT test/t1/2
{
   "objects": [
      {
         "object1": {
            "id": "12345",
            "name": "abc"
         }
      },
      {
         "object2": "12345"
      }
   ]
}

PUT test/t1/2
{
   "objects": [
      {
         "object1": {
            "id": "12345",
            "name": "abc"
         },
         "object2": "12345"
      },
      {
       ...
      }
   ]
}