php - Symfony Elasticsearch准则

标签 php symfony elasticsearch

我想过滤发布条件:

SELECT * FROM posts WHERE (title LIKE '%AA%' OR subtitile LIKE '%BB%') AND category = 'Car'

我尝试的是:
$finder = $this->container->get('fos_elastica.finder.website.article');
$boolQuery = new \Elastica_Query_Bool();

$fieldQuery = new \Elastica_Query_Text();
$fieldQuery->setFieldQuery('title', '*keyword*');
$fieldQuery->setFieldParam('title', 'analyzer', 'my_analyzer');
$boolQuery->addShould($fieldQuery);

$fieldQuery1 = new \Elastica_Query_Text();
$fieldQuery1->setFieldQuery('subtitle', '*keyword*');
$fieldQuery1->setFieldParam('subtitle', 'analyzer', 'my_analyzer');
$boolQuery->addShould($fieldQuery1);

$fieldQuery2 = new \Elastica_Query_Text();
$fieldQuery2->setFieldQuery('category', 'Car');
$boolQuery->addMust($fieldQuery2);

$data = $finder->find($boolQuery);

我收到“汽车”类别的所有帖子,并且其中一些帖子包含“关键字”,但我只需要“汽车”类别的帖子,那么contais关键字“关键字”却不是全部

如何修复我的代码。

最佳答案

将两个addShould替换为addMust

我还建议使用https://github.com/ongr-io/ElasticsearchBundle而不是https://github.com/FriendsOfSymfony/FOSElasticaBundle :)

关于php - Symfony Elasticsearch准则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786294/

相关文章:

indexing - 我应该如何在Elasticsearch中索引此架构

php - 是否有 PHP 设置来设置是否可以索引函数的结果?

php - 如何获取带有 HTML 节点的元素的内容?

PHP/MYSQL更新语句咨询

symfony2 : Using group_concat in QueryBuilder(Doctrine)

Symfony webpack encore twig 函数不起作用

elasticsearch - 短语提示与ngrams

php - 处理加载网址时出错

php - HWIOAuthBundle 第一个示例的问题

elasticsearch - 在使用 inner_hits 时指定要为 ElasticSearch 查询返回的结果的总大小