FOSElasticaBundle: настройка анализатора для пользовательских свойств
Я использую FOSElasticaBundle в Symfony 3.3. Я зарегистрировал прослушиватель событий в событии POST_TRANSFORM, которое вычисляет и добавляет настраиваемое свойство, например:
public function addCustomProperty(TransformEvent $event)
{
$document = $event->getDocument();
$custom = $this->anotherService->calculateCustom($event->getObject());
$document->set('custom', $custom);
}
Теперь мне нужно установить анализатор, который будет использоваться для этого свойства. Как я могу это сделать?
Я уже пытался добавить имя настраиваемого поля в определение типа в моей конфигурации fos_elastica, но это вызывает исключение, так как пакет затем ожидает это свойство и для моей сущности.
1 ответ
Решение
Я наконец узнал, что я мог бы использовать dynamic_templates
установить желаемый анализатор следующим образом:
fos_elastica:
indexes:
app:
types:
myentity:
dynamic_templates:
custom_field:
path_match: customfield.*
mapping:
analyzer: myanalyzer
properties:
...