Подтвердить что ты не робот

Добавить индекс FULLTEXT в Doctrine 2 с помощью аннотаций?

Я знаю, что Doctrine 2 не поддерживает индексы FULLTEXT. Я на самом деле использую отображение набора результатов и собственные запросы для FULLTEXT поисковых таблиц innodb (MySQL 5.6). Но мне еще нужно отметить одно или несколько полей объектов как часть индекса.

Можно ли добавить индекс, используя аннотации? Кажется, что аннотация @Index не указывает тип...

4b9b3361

Ответ 1

В соответствии с DDC-3014 в журнале отслеживания ошибок Doctrine, возможность указывать полнотекстовые индексы с использованием аннотаций была реализована 14 апреля и будет доступна в выпуске 2.5. Если вам не нравится ждать, вы можете попытаться использовать нестабильную версию разработки или выполнить backport фиксацию, реализующую эту функцию.

Вот пример использования:

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

    ...
}

Ответ 2

Вот пример, как сделать полнотекстовый индекс с драйвером отображения ямля.

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