Я использую FosElasticaBundle для некоторых довольно простых запросов, и это работает довольно хорошо, к сожалению документация довольно пуста, когда речь идет о том, «как отсортировать результаты с помощью объекта сортировки». »...
Кто-нибудь сможет объяснить мне, как использовать мой объект сортировки?
/**
* @Route("/search-test", name="searchTest")
*/
public function searchTestAction()
{
$finder = $this->container->get('fos_elastica.finder.foo.bar');
$mainBool = new BoolQuery();
$boolQuery = new BoolQuery();
$matchName = new Fuzzy();
$matchName->setField('company.name', 'foo');
$boolQuery->addMust($matchName);
$rangeNum = new Range();
$rangeNum->addField('company.numeric', ['gt' => 250, 'lt' => 800]);
$boolQuery->addMust($rangeNum);
$nested = new Nested();
$nested->setPath('company')->setQuery($boolQuery);
$mainBool->addMust($nested);
// What should I do with this pretty Sort object ? :)
$sort = new Sort('company.numeric');
$sort->setOrder('ASC');
$data = $finder->findPaginated($mainBool, ['from' => 2, 'size' => 12]);
return $this->render('default/test/search.html.twig', [
'data' => $data,
]);
}
игнорировать сам запрос, он просто иллюстрирует необходимость