Php ONGR ElasticsearchBundle将虚拟字段映射到ElasticSearch
当我在MySQL中有名字和姓氏时,我想在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
交叉字段
和复制到
,但据我所知,两者都不支持在匹配短语前缀查询中搜索部分或全部名称的灵活性
因此,我想做的是向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;
}