У меня есть реализация поиска elasticsearch, работающая для веб-приложения, но я застрял на последней детали. Я хочу иметь возможность фильтровать определенные поля по алфавиту. Поэтому, если я запрошу «d», он должен вернуть все, что начинается с «d» для этого поля. На данный момент это то, что у меня есть:
$elasticaQueryString = new Elastica_Query_QueryString();
$elasticaQueryString->setDefaultField('Name');
$elasticaQueryString->setQuery('d'.'*');
Это работает для полей, в которых есть только одна работа, т.е. «Дэн». Но если есть более одного слова, он возвращает результаты для каждого ключевого слова. т.е. «Дэн Райан», «Райан Дэн». Я также пробовал запрос с подстановочными знаками и префиксом, но они дают аналогичные результаты.
Нужно ли создавать собственный анализатор или есть какой-то другой способ обойти эту проблему?