mysql 使用注解在Doctrine 2中添加FULLTEXT索引?

flseospp  于 12个月前  发布在  Mysql
关注(0)|答案(3)|浏览(79)

我知道Doctrine 2不支持FULLTEXT索引。我实际上使用了一个结果集Map和原生查询来FULLTEXT搜索innodb表(MySQL 5.6)。但我仍然需要将一个或多个实体字段标记为索引的一部分。
有没有什么方法可以使用注解添加索引?似乎@Index注解没有指定类型.

isr3a4wc

isr3a4wc1#

根据Doctrine的问题跟踪中的DDC-3014,使用注解指定全文索引的可能性已于4月14日实现,并将在2.5版中提供。如果你不喜欢等待,你可以尝试使用不稳定的开发版本,或者使用the commit实现该功能。
下面是一个用法示例:

/**
* @Entity
* @Table(indexes={@Index(columns={"content"}, flags={"fulltext"})})
*/
class Comment
{
    /**
    * @Column(type="text")
    */
    private $content;

    ...
}
xurqigkl

xurqigkl2#

下面是一个如何使用yamlMap驱动程序创建全文索引的示例。

Doctrine\Tests\ORM\Mapping\Comment:
    type: entity
    fields:
        content:
            type: text
    indexes:
        xy_fulltext:
            columns: ["name", "content", "keywords"]
            flags: fulltext
k97glaaz

k97glaaz3#

从Doctrine 2.9开始使用PHP 8属性:

<?php
#[ORM\Index(columns: ['name'], name: 'name_idx', flags: ['fulltext'])]
#[ORM\Entity(repositoryClass: ItemRepository::class)]
class Item {
    #[ORM\Column(type: Types::TEXT)]
    private string $name;
}

来源:https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/attributes-reference.html#attrref_index

相关问题