@nicolaa

Как сделать проверку на существование id в elasticsearch?

Есть функция удаления записи из БД и по ид из БД удаление записи из ElasticSearch
Столкнулся с проблемой, что запись в БД есть, а в ElasticSearch нет и при попытки удалить несуществующую запись из ES, выходит ошибка
Как правильно сделать проверку на существование id в ES?

Пробовал так -

$items = $elastic->search([
            'index' => 'baza',
            'type' => 'prod',
            'body' => [
                "query" => [
                    "ids" => [
                        "values" => [$id]
                    ]
                ]
            ]
        ]);

Но выходит ошибка от Laravel
Elasticsearch\Common\Exceptions\Missing404Exception
{"_index":"baza","_type":"prod","_id":"1569568","_version":1,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":500770,"_primary_term":1}

5fbc9e9a699f4055947381.png
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@nicolaa Автор вопроса
Перечитав документацию, нашел подходящий для меня способ
GET my-index-000001/_search
{
  "query": {
    "terms": {
      "_id": [ "1", "2" ] 
    }
  }
}

В связке с Laravel/ElasticSearch, получилось так -

$items = $elastic->search([
            'index' => 'baza',
            'body' => [
                "query" => [
                    "terms" => [
                        "_id" => [ $id ]
                    ]
                ]
            ]
        ]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы