Ошибка при обновленииasticsearch php & quot; document_missing_exception & quot;

Я использую Elasticsearch с PHP и после необходимого отображения данных. Я вставил данные через функцию вставки, как показано ниже:

public function insertNode ($event_id) {
global $conn1;
$client = $this->elasticclient;
$params = null;

$stmt = "SELECT
events.event_id,
events.event_title,
events.event_details,
DATE_FORMAT(events.added_date,'%d-%m-%Y') AS added_date
FROM events
WHERE events.event_id = $event_id";

$query = $conn1->prepare($stmt);
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
$params = [
'index' => 'eventree',
'type'  => 'events',
'id'    => $row['event_id'],
'body'  => [
'EVENT_TITLE'   => $row['event_title'],
'EVENT_DETAILS' => $row['event_details'],
'START_TIME'    => $row['start_time'],
'ADDED_DATE'    => $row['added_date'],
'STATUS'        => $row['status']
]
];
}

$responses = $client->index($params);

return true;
}

ниже вы можете увидеть, как я обновляю данные:

public function updateNode($event_id) {
global $conn1;
$client = $this->elasticclient;
$params = null;

$stmt = "SELECT
events.event_id,
events.event_title,
events.event_details,
events.status,
DATE_FORMAT(events.added_date,'%d-%m-%Y') AS added_date
FROM events
WHERE events.event_id = $event_id";

$query = $conn1->prepare($stmt);
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
$params = [
'index' => 'eventree',
'type' => 'events',
'id' => $row['event_id'],
'body' => [
'doc' => [
'EVENT_TITLE' => $row['event_title'],
'EVENT_DETAILS' => $row['event_details'],
'START_TIME' => $row['start_time'],
'ADDED_DATE' => $row['added_date'],
'STATUS' => $row['status']
]]];
}

$responses = $client->update($params);
return true;
}

Проблема в том, что процесс обновления не будет принимать идентификаторы больше 9, хотя есть записи с идентификаторами, превышающими число 9. Это ошибка, которую я получаю после запуска процесса обновления:

{
"error": "{\"error\":{\"root_cause\":[{\"type\":\"document_missing_exception\",\"reason\":\"[events][10]: document missing\",\"index_uuid\":\"6l5vWeLLSb6CvcCsqTws9g\",\"shard\":\"1\",\"index\":\"eventree\"}],\"type\":\"document_missing_exception\",\"reason\":\"[events][10]: document missing\",\"index_uuid\":\"6l5vWeLLSb6CvcCsqTws9g\",\"shard\":\"1\",\"index\":\"eventree\"},\"status\":404}"}

0

Решение

Ваш php код неверен, вы зациклены $rows и переопределить $params переменная все время!

0

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

правильный код

    public function insertNode($event_id) {
global $conn1;
$client = $this->elasticclient;
$params = null;

$stmt = "SELECT
events.event_id,
events.event_title,
events.event_details,
DATE_FORMAT(events.added_date,'%d-%m-%Y') AS added_date
FROM events
WHERE events.event_id = $event_id";

$query = $conn1->prepare($stmt);
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
$params = [
'index' => 'eventree',
'type' => 'events',
'id' => $row['event_id'],
'body' => [
'EVENT_TITLE' => $row['event_title'],
'EVENT_DETAILS' => $row['event_details'],
'START_TIME' => $row['start_time'],
'ADDED_DATE' => $row['added_date'],
'STATUS' => $row['status']
]];
$responses = $client->index($params);
}

return true;

}

public function updateNode($event_id) {
global $conn1;
$client = $this->elasticclient;
$params = null;

$stmt = "SELECT
events.event_id,
events.event_title,
events.event_details,
events.status,
DATE_FORMAT(events.added_date,'%d-%m-%Y') AS added_date
FROM events
WHERE events.event_id = $event_id";

$query = $conn1->prepare($stmt);
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
$params = [
'index' => 'eventree',
'type' => 'events',
'id' => $row['event_id'],
'body' => [
'doc' => [
'EVENT_TITLE' => $row['event_title'],
'EVENT_DETAILS' => $row['event_details'],
'START_TIME' => $row['start_time'],
'ADDED_DATE' => $row['added_date'],
'STATUS' => $row['status']
]]];

$responses = $client->update($params);
}

return true;

}

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector