Используя библиотеку PHP Elastica, мне интересно, как лучше всего проверить, существует ли документ с идентификатором = 1?
Я делал следующим образом:
$docPre = $elasticaType->getDocument(1);
if ($docPre) {
//do some stuff...
} else {
//do something else...
}
Однако приведенный выше код не работает, потому что метод getDocument() создает исключение NotFoundException, если документ не существует.
В качестве альтернативы я мог бы выполнить тип «поиск», используя что-то вроде этого:
$elasticaQueryString = new \Elastica\Query\QueryString();
$elasticaQueryString->setParam('id', 1);
$elasticaQuery = new \Elastica\Query();
$elasticaQuery->setQuery($elasticaQueryString);
$resultSet = $elasticaType->search($elasticaQuery);
$count = $resultSet->count();
if ($count > 0) {
//do some stuff...
} else {
//do something else...
}
Однако вышеизложенное кажется довольно громоздким... Как лучше? Этот другой вопрос относится к ElasticSearch , и один из ответов предлагает мой первый подход (эквивалент использования getDocument). Однако я не хочу, чтобы было выброшено исключение, как это было бы в случае с Elastica...