Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在elasticsearch中使用对象及其引用索引Json对象?_Java_Json_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Mapper - Fatal编程技术网 elasticsearch,mapper,Java,Json,elasticsearch,Mapper" /> elasticsearch,mapper,Java,Json,elasticsearch,Mapper" />

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

Java 如何在elasticsearch中使用对象及其引用索引Json对象?,java,json,elasticsearch,mapper,Java,Json,elasticsearch,Mapper,我最近正在与Elasticsearch合作,我遇到了一个不知道如何解决的问题 我有一个类似的Json: { "objects": [ "object1": { "id" : "12345", "name":"abc" }, "12345" ] } Object2是object1的引用,当我试图保存(或称为索引)到弹性搜索时,它说: “org.elasticsearch.index.mapper.MapperParsingExceptio

我最近正在与Elasticsearch合作,我遇到了一个不知道如何解决的问题

我有一个类似的Json:

{
  "objects": [
    "object1": {
     "id" : "12345",  
     "name":"abc"
    },
    "12345"
   ]
}
Object2是object1的引用,当我试图保存(或称为索引)到弹性搜索时,它说:

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

我在google上搜索后发现,因为object1是一个对象,而Object2被认为是一个字符串
我们无法在项目中更改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"
      },
      {
       ...
      }
   ]
}
你是怎么做到的?
我运行这个命令,它就可以工作了

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

谢谢你的问答,对不起,应该是[]而不是{},我修改了。我更新了答案:-)非常感谢!但是我们从另一个项目获得了json,这意味着我们不能更改json字符串的任何内容。你知道其他解决方法吗?可能elasticsearch中有任何设置或配置?抱歉!我不知道那个案子有什么解决办法,还是谢谢你。我们迫切需要改变我们的设计来避免这个问题。谢谢。谢谢你的问答,对不起,应该是[]而不是{},我修改了。我更新了答案:-)非常感谢!但是我们从另一个项目获得了json,这意味着我们不能更改json字符串的任何内容。你知道其他解决方法吗?可能elasticsearch中有任何设置或配置?抱歉!我不知道那个案子有什么解决办法,还是谢谢你。我们迫切需要改变我们的设计来避免这个问题。谢谢。这不是有效的JSON-在测试它哦,对不起,我没有注意到。我更新了它,谢谢你的回复这不是有效的JSON-在测试它哦,对不起,我没有注意到。我更新了,谢谢你的重拍