Symfony Doctrine с FosElastic, как искать в ORM и Elastic вместе?

Например

моя сущность имеет поля:

идентификатор (целое число)

заголовок (текст) (хранится также в резинке)

контент (текст) (хранится также в эластичном)

идентификатор категории (целое число)

статус (целое)

и я хочу искать текст из заголовка, контента, который я использую

//RepositoryManagerInterface $finder
$results = $finder->getRepository(Offer::class)->find('AUDI A6 C6 2.0');

когда я хочу искать в базе данных пример по categoryId

$offers = $this->getDoctrine()->getRepository(Offer::class)->customOfferQueryBuilderWithResult(['categoryId'=>5]);

как искать вместе? я должен хранить categoryId также в эластичном?


person Robert M    schedule 25.02.2020    source источник
comment
если я не могу этого сделать, пожалуйста, скажите мне, и я создам лучший индекс   -  person Robert M    schedule 26.02.2020


Ответы (1)


Попробуй это:

//Repository method

/**
 * @param int $id
 * @return Query
 */
public function getByOfferId(int $id): Query
{
    $terms = new Terms('categoryId', [$id]);
    $boolQuery = (new BoolQuery())->addMust($terms);
    return (new Query())->setQuery($boolQuery);
}
person Lukas Zmoginas    schedule 07.03.2020