Я получаю сообщение об ошибке «Неустранимая ошибка PHP: класс« Поиск »не найден». Для следующего запроса:
use Elasticsearch\ClientBuilder;
use ONGR\ElasticsearchDSL\Search;
use ONGR\ElasticsearchDSL\Query\MatchQuery;
use ONGR\ElasticsearchDSL\Query\BoolQuery;
require 'vendor/autoload.php';
$hosts = ['address'];
$client = ClientBuilder::create()->setHosts($hosts)->build();
//$matchQueryForUser1 = new ONGR\ElasticsearchDSL\Query\MatchQuery('from', 'bob.allen');
$search = new Search();
$matchQueryForUser1 = new MatchQuery("from", "bob.allen");
$matchQueryForUser2 = new MatchQuery("env-from", "bob.allen");
$search->addQuery($matchQueryForUser1, BoolQuery::SHOULD);
$search->addQuery($matchQueryForUser2, BoolQuery::SHOULD);
$search->addParameter("minimum_number_should_match", 1);
$params = [
'index' => 'mdeveresponsecom196912',
'type' => 'message',
'body' => $search->toArray(),
];
$results = $client->search($params);
print_r($results);
Но когда я запускаю следующий запрос, он работает нормально, и меня удивляет проблема с моими пространствами имен, которая из исходных файлов выглядит так, как будто она изменилась. Какие-нибудь мысли?
use Elasticsearch\ClientBuilder;
use ONGR\ElasticsearchDSL\Search;
use ONGR\ElasticsearchDSL\Query\MatchAllQuery;
require 'vendor/autoload.php';
$hosts = ['address'];
$client = ClientBuilder::create()->setHosts($hosts)->build();
$matchAll = new MatchAllQuery();
$search = new Search();
$search->addQuery($matchAll);
$params = [
'index' => 'mdeveresponsecom196912',
'type' => 'message',
'body' => $search->toArray(),
];
$results = $client->search($params);
print_r($results);
Задача ещё не решена.
Других решений пока нет …