web-dev-qa-db-ja.com

注釈を使用してDoctrine 2にFULLTEXTインデックスを追加しますか?

Doctrine 2はFULLTEXTインデックスをサポートしていません。実際には、結果セットマッピングとネイティブクエリを使用して、innodbテーブル(MySQL 5.6)をFULLTEXT検索します。ただし、マークを付ける必要があります。インデックスの一部としての1つ以上のエンティティフィールド。

注釈を使用してインデックスを追加する方法はありますか?のようだ @Index注釈は...のタイプを指定しません.

20
gremo

DoctrineのIssueTrackerの DDC-3014 によると、注釈を使用してフルテキストインデックスを指定する機能は、4月14日に実装され、リリース2.5で利用可能になります。待ちたくない場合は、不安定な開発バージョンを使用するか、バックポート コミット 機能の実装を試みることができます。

使用例は次のとおりです。

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

    ...
}
44
dened

Yamlマッピングドライバーを使用してフルテキストインデックスを作成する方法の例を次に示します。

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