0

我正在尝试索引一些示例数据在 Windows 中我使用 curl.exe 程序,这是我使用的命令:

curl.exe -XPUT "http://localhost:9200/super_client/customer/1" -d '{
  "_id": "my_cust.client.12345",
  "client_oid": "12345",
  "client_name": "Taz",
  "flags": "['C2','C2','C3']",
  "user_ids": "1234567"
}'

签入在线 json 验证器后 JSON 有效。该请求得到一个400. 顺便说一句,它确实使用正确的列创建了索引。虽然没有加载数据...

{
  "error": "MapperParsingException[failed to parse]; nested: JsonParseException[Unexpected character ('i' (code 105)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: [B@146c2f2; line: 1, column: 8]]; ",
  "status": 400
}

这与windows有关吗?我是否使用错误的 PUT 请求格式将数据索引到弹性搜索?

4

1 回答 1

3

因为您的引号嵌套不正确。您需要转义 JSON 参数 ( -d) 的内部引号。

"{\"_id\": \"my_cust...

将该字符串用单引号括起来也可能更容易('{"_id":...),但您最终也会得到嵌套的单引号,因为flags. 不过,不确定为什么必须是字符串而不是数组。

于 2013-08-30T14:34:09.367 回答