FOSElasticaBundle:自定义属性的设置分析器
FOSElasticaBundle: Setting analyzer for custom properties
我在 Symfony 3.3 中使用 FOSElasticaBundle。我已经在 POST_TRANSFORM 事件上注册了一个事件侦听器,它计算和 adds a custom property 像这样:
public function addCustomProperty(TransformEvent $event)
{
$document = $event->getDocument();
$custom = $this->anotherService->calculateCustom($event->getObject());
$document->set('custom', $custom);
}
现在我需要设置用于此 属性 的分析器。我该怎么做?
我已经尝试将自定义字段名称添加到我的 fos_elastica 配置中的类型定义中,但这会导致异常,因为捆绑包期望我的实体上也有 属性。
我终于发现我可以使用 dynamic_templates
来设置所需的分析器,如下所示:
fos_elastica:
indexes:
app:
types:
myentity:
dynamic_templates:
custom_field:
path_match: customfield.*
mapping:
analyzer: myanalyzer
properties:
...
我在 Symfony 3.3 中使用 FOSElasticaBundle。我已经在 POST_TRANSFORM 事件上注册了一个事件侦听器,它计算和 adds a custom property 像这样:
public function addCustomProperty(TransformEvent $event)
{
$document = $event->getDocument();
$custom = $this->anotherService->calculateCustom($event->getObject());
$document->set('custom', $custom);
}
现在我需要设置用于此 属性 的分析器。我该怎么做?
我已经尝试将自定义字段名称添加到我的 fos_elastica 配置中的类型定义中,但这会导致异常,因为捆绑包期望我的实体上也有 属性。
我终于发现我可以使用 dynamic_templates
来设置所需的分析器,如下所示:
fos_elastica:
indexes:
app:
types:
myentity:
dynamic_templates:
custom_field:
path_match: customfield.*
mapping:
analyzer: myanalyzer
properties:
...