elasticsearch,doctrine-orm,ongr,Php,Symfony,elasticsearch,Doctrine Orm,Ongr" /> elasticsearch,doctrine-orm,ongr,Php,Symfony,elasticsearch,Doctrine Orm,Ongr" />

Php ONGR ElasticsearchBundle将虚拟字段映射到ElasticSearch

Php ONGR ElasticsearchBundle将虚拟字段映射到ElasticSearch,php,symfony,elasticsearch,doctrine-orm,ongr,Php,Symfony,elasticsearch,Doctrine Orm,Ongr,当我在MySQL中有名字和姓氏时,我想在ElasticSearch中进行全名查找 我已经查看了交叉字段和复制到,但据我所知,两者都不支持在匹配短语前缀查询中搜索部分或全部名称的灵活性 因此,我想做的是向ElasticSearch添加一个字段,即$firstName''$姓氏 我已经使用@ES装饰器将我的用户实体字段映射到ElasticSearch /** * @var string * * @ORM\Column(name="firstname", type="string", leng

当我在MySQL中有名字和姓氏时,我想在ElasticSearch中进行全名查找

我已经查看了
交叉字段
复制到
,但据我所知,两者都不支持在
匹配短语前缀查询中搜索部分或全部名称的灵活性

因此,我想做的是向ElasticSearch添加一个字段,即
$firstName''$姓氏

我已经使用
@ES
装饰器将我的用户实体字段映射到ElasticSearch

 /**
 * @var string
 *
 * @ORM\Column(name="firstname", type="string", length=255, nullable=true)
 * @ES\Property(type="keyword")
 * @Serializer\Groups({"default"})
 * @Serializer\SerializedName("firstName")
 */
private $firstname;
但是,如何向ElasticSearch添加虚拟的
fullName
列,以便搜索该字段而不是两个单独的字段

是否有一种方法可以使用decorators添加它,从而自动处理其他字段和数据迁移等,而无需为其创建单独的导入脚本并手动执行?

只是一个快速快照(未测试):


太神了这做得很好。我以为我已经试过了,但显然没有。
 /**
 * @var string
 *
 * @ES\Property(type="keyword")
 * @Serializer\Groups({"default"})
 * @Serializer\SerializedName("fullName")
 */
private $fullname;

/**
 * Get fullname
 *
 * @return string
 */
public function getFullname()
{
    return $this->firstname . ' ' . $this->lastname;
}