json — Elasticsearch Массовая вставка данных — JsonParseException [Неожиданный символ — Использование переполнения стека

При индексации объемных данных с использованием PHP-метода curl я получаю исключение как "error":"JsonParseException[Unexpected character (':' (code 58)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: [B@14abb68; line: 1, column: 18]]","status":500}

Пожалуйста, найдите ниже код, который я использую для того же и дайте мне знать, что может быть не так здесь.

<?php
$ch = curl_init();
$method = "POST";
$url = "http://192.168.1.204/myindex/test/_bulk";


$qry = '
{"index":{"_index": "myindex","_type":"test"}}
{
"product_id": 1,
"title": "mobile"}
{"index":{"_index": "myindex","_type":"test"}}
{
"product_id": 2,
"title": "laptop",
}
';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PORT, 9200);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper($method));
curl_setopt($ch, CURLOPT_POSTFIELDS, $qry);

$result = curl_exec($ch);
curl_close($ch);
echo $result;

?>

2

Решение

Вы не используете правильный формат (и во втором элементе есть дополнительная запятая).
Так должно быть:

action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
....
action_and_meta_data\n
optional_source\n

Извлечено из документации эластичный поиск — навальный

Итак, вы должны добавить данные в следующем формате:

{"index":{"_index": "myindex","_type":"test"}}
{"product_id": 1,"title": "mobile"}
{"index":{"_index": "myindex","_type":"test"}}
{"product_id": 2,"title": "laptop"}
1

Другие решения

Других решений пока нет …