Результаты поиска упругого поиска null

1

мне нужно установить простое условие для эластичной базы данных поиска, которое, если результат будет нулевым, покажет, что результат поиска не существует.

$result = $client->search($params);

но в упругом поиске, когда результат равен нулю, он возвращает это ---

Array (
    [took] => 1 
    [timed_out] => 
    [_shards] => Array ( 
        [total] => 2 
        [successful] => 2
        [failed] => 0 
    ) 
    [hits] => Array (
        [total] => 0 
        [max_score] => 
        [hits] => Array ( ) 
    )
)

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

if ($result != null ){
    echo ($result); 
} else {
   echo "Your search doesnot exists";
}

Итак, как просто установить условие для упругого поиска, когда результат возвращается пустым.

Теги:
elasticsearch

2 ответа

1
Лучший ответ

Пытаться:

     if ($result['hits']['total'] > 0 ){
                echo ($result); 
            } else {
                echo "Your search doesnot exists";
            }
  • 0
    спасибо wolo за ваш хороший ответ, я также проголосовал за ваш ответ :)
1

ElasticSearch возвращает фактический искомый контент в массиве hits.

Вы можете проверить наличие hits['total'] чтобы получить количество элементов, соответствующих вашему запросу, и все отдельные элементы выходят из массива hits['hits'].

  • 0
    спасибо Дау за твой хороший ответ, я также проголосовал за твой ответ :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню