symfony - 带有FosElastic的Symfony主义如何从ORM和Elastic一起搜索?

标签 symfony elasticsearch doctrine-orm foselasticabundle

例如

我的实体具有以下字段:

id(int)

标题(文本)(也以 flex 方式存储)

内容(文本)(也以 flex 方式存储)

categoryId(int)

状态(int)

我想从标题,内容中搜索文字

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

当我想按categoryId在数据库示例中搜索时
$offers = $this->getDoctrine()->getRepository(Offer::class)->customOfferQueryBuilderWithResult(['categoryId'=>5]);

如何一起搜索?
我是否还必须将categoryId存储在 flex 中?

最佳答案

试试这个:

//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);
}

关于symfony - 带有FosElastic的Symfony主义如何从ORM和Elastic一起搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60397822/

相关文章:

php - 在 nginx 中为 symfony2 创建一个 block

尽管设置了 JAVA_HOME,但 JAVA 不在路径中

mysql - 学说 2 : MySql required version

symfony - 在不获取对象的情况下设置多对一关系的外部 ID

symfony - 扩展 FOSUserBundle 密码验证以需要特殊字符

php - 查询生成器中的 Symfony Doctrine if 语句

jquery - Symfony2 : AJAX request : How to handle authentication when needed?

elasticsearch - 如何在没有docker的Jaeger中配置 Elasticsearch

elasticsearch - 在ElasticSearch 5中将C#枚举另存为字符串而不是int

Symfony2 : deleted property still used in query