gpt4 book ai didi

php - ONGR ElasticsearchBundle将虚拟字段映射到ElasticSearch

转载 作者:行者123 更新时间:2023-12-02 23:22:01 28 4
gpt4 key购买 nike

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

我看过cross_fieldscopy-to,但据我所知,它们都不支持能够在MatchPhrasePrefixQuery中搜索部分或全部名称的灵活性。

所以我想做的是向ElasticSearch添加一个字段$firstName . ' ' . $lastName
我已经使用@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列,以便可以搜索该字段而不是2个单独的字段?

有没有一种使用装饰器添加它的方法,以便它可以自动与其他字段和数据迁移等一起处理,而不必为其创建单独的导入脚本并手动进行处理?

最佳答案

只是一个快速镜头(未经测试):

 /**
* @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;
}

关于php - ONGR ElasticsearchBundle将虚拟字段映射到ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060719/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com