Как использовать другие виды поиска в fosasticsearch - PullRequest
0 голосов
/ 18 января 2019

Я использую Symfony 4 + Fosasticsearch. Этот код работает для меня:

$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 голосов
/ 19 января 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...