如何在fos elasticsearch中使用其他类型的搜索

时间:2019-01-18 13:22:20

标签: symfony elasticsearch symfony4

我使用symfony 4 + fos elasticsearch。 该代码对我有用:

$finder = $finder->getRepository(\App\Entity\User::class)->find($searchTerm);

哪个卷曲

curl -XGET 'http://localhost:9200/app/user/_search' -d '{"query":{"match_all":{}}}'

curl -XGET 'http://localhost:9200/app/user/_search' -d '{"query":{"query_string":{"query":"a"}}}'

我要使用match-query-phrase-prefix https://www.elastic.co/guide/[...]dsl-match-query-phrase-prefix

如何在fos中做到这一点?文档很小。 请帮忙。

1 个答案:

答案 0 :(得分:0)

FOS Elasticsearch在后台使用Elasticsearch客户端Elastica。使用FOS Elasticsearch创建的“查找器”服务在索引上运行自定义Elastica查询:

$finder = $this->container->get('fos_elastica.finder.app.user');

$matchQuery = new \Elastica\Query\MatchPhrasePrefix();
$matchQuery->setFieldQuery('name', 'a');

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