当我在 MySQL 中有名字和姓氏时,我想在 ElasticSearch 中进行全名查找。
我已经看过cross_fields
and ,但据我所知copy-to
,它们都不支持能够在 a 中搜索部分或全部名称的灵活性。MatchPhrasePrefixQuery
所以我想做的是向 ElasticSearch 添加一个字段,即$firstName . ' ' . $lastName
我已经使用装饰器将我的用户实体字段映射到 ElasticSearch @ES
。
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=255, nullable=true)
* @ES\Property(type="keyword")
* @Serializer\Groups({"default"})
* @Serializer\SerializedName("firstName")
*/
private $firstname;
但是如何fullName
向 ElasticSearch 添加一个虚拟列,以便我可以搜索该字段而不是 2 个单独的字段?
有没有办法使用装饰器添加它,以便它与其他字段和数据迁移等一起自动处理,而无需为其制作单独的导入脚本并手动执行?