elasticsearch,Java,Json,elasticsearch" /> elasticsearch,Java,Json,elasticsearch" />

Java 如何在Elasticsearch中索引元素数组?

Java 如何在Elasticsearch中索引元素数组?,java,json,elasticsearch,Java,Json,elasticsearch,我正在使用Elasticsearch 1.4.3,并尝试为数据库创建一个自动“填充器”。 其想法是使用该网站生成一组随机数据,并将其推送到Elasticsearch索引中 为了与Elasticsearch接口,我将使用Elasticsearch For Java API与Elasticsearch web API混合使用 我设法一次推送一个用户,只需复制粘贴信息,不包括[和]字符,并创建一个shell脚本来调用 curl -XPOST 'http://localhost:9200/myindex

我正在使用Elasticsearch 1.4.3,并尝试为数据库创建一个自动“填充器”。 其想法是使用该网站生成一组随机数据,并将其推送到Elasticsearch索引中

为了与Elasticsearch接口,我将使用Elasticsearch For Java API与Elasticsearch web API混合使用

我设法一次推送一个用户,只需复制粘贴信息,不包括[]字符,并创建一个shell脚本来调用

curl -XPOST 'http://localhost:9200/myindex/users/' -d '{
    "name": {
      "first": "Dickerson",
      "last": "Wood"
    }, etc...
如果我尝试复制一个由3个人组成的完整块,并尝试使用相同的脚本推送数据

curl -XPOST 'http://localhost:9200/geocon/users/' -d '[
  {
    "name": {
      "first": "Dickerson",
      "last": "Wood"
    }, etc ... 
]
  }'
返回的错误为:

org.elasticsearch.index.mapper.MapperParsingException:格式错误的内容,必须以对象开头


你将如何解决这个问题?谢谢大家!

您缺少包装项目的右括号:

  [
    {
    "name": {
      "first": "Dickerson",
      "last": "Wood"
    }, etc.
  ]
您可以验证JSON,例如通过


另外,试着看一看

谢谢你的帮助,但是如果我粘贴生成的JSON(实际上是JSON的向量),网站会说有效的JSON,即使没有{in the outer level,如果你在数组末尾插入缺少的},是的。我举了第二个例子,删除
,等等…
(不是大括号!),它返回一个错误,因为您缺少name属性的对象的右大括号。我更新了我的答案。你是对的,我的打字错误。不幸的是,问题仍然存在