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

时间:2017-06-20 07:23:50

标签: java json elasticsearch mapper

我最近和Elasticsearch合作,遇到了一个不知道如何解决它的问题。

我有一个Json喜欢:

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

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

“org.elasticsearch.index.mapper.MapperParsingException:无法解析”

我谷歌后发现,因为object1是一个对象,但对象2被认为是一个字符串。
我们无法在项目中更改json,因此在这种情况下如何将其保存在elasticsearch中?
感谢您提供任何帮助和建议。

1 个答案:

答案 0 :(得分:0)

你是怎么做到的?
我运行这个命令就可以了。

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"
      },
      {
       ...
      }
   ]
}