如何索引Elasticsearch中的元素数组?

时间:2015-02-23 12:31:23

标签: java json elasticsearch

我正在使用Elasticsearch 1.4.3,而我正试图创建一个自动化的"填充物"对于数据库。 我们的想法是使用这个网站http://beta.json-generator.com/BhxCdZ6生成一组随机数据并将其推送到Elasticsearch的索引中。

为了与Elasticsearch连接,我使用与Elasticsearch Web API混合的Elasticsearch for Java 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:格式错误的内容,必须以对象开头

你会如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

您缺少包裹该项目的右括号:

  [
    {
    "name": {
      "first": "Dickerson",
      "last": "Wood"
    }, etc.
  ]

您可以验证您的JSON,例如通过http://jsonlint.com/

另外,请尝试查看http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html