2014-05-03 12 views
13

Ich weiß, dass Doctrine 2 FULLTEXT Indizes nicht unterstützt. Ich verwende tatsächlich eine Ergebnismengenzuordnung und native Abfragen für die FULLTEXT-Suche innodb-Tabellen (MySQL 5.6). Aber ich muss immer noch ein oder mehrere Entitätsfelder als Teil des Indexes markieren.Fügen Sie einen FULLTEXT-Index in Doctrine 2 mithilfe von Anmerkungen hinzu?

Gibt es eine Möglichkeit, den Index mithilfe von Anmerkungen hinzuzufügen? Es scheint, dass @Index Anmerkung spezifiziert nicht die Art von ...

Antwort

31

Nach DDC-3014 im Bugtracker von Lehre, die Möglichkeit, Volltextindizes angeben Anmerkungen unter Verwendung wurde am 14. April umgesetzt und wird in Version verfügbar sein 2.5. Wenn Sie nicht warten möchten, können Sie versuchen, die Unstable-Entwicklungsversion zu verwenden oder die Funktion the commit zu rückportieren.

Hier ist ein Anwendungsbeispiel:

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

    ... 
} 
+2

Funktioniert perfekt mit Doktrin/Orm Dev-Master, danke. Leider funktioniert Doctrine extensions mit Doctrine 2.5 noch nicht, daher kann ich es noch nicht verwenden. Siehe dieses Problem (es geht um Sylius, bezieht sich aber auf das Tree-Verhalten mit Doktrin/orm> 2.4.2): https://github.com/Sylius/Sylius/issues/1325 – gremo

+0

Ich würde dies jetzt aktualisieren, dass 2.5 out ist . –

1

Hier ist ein Beispiel, wie einen Volltext-Index mit den yaml Mapping-Treiber zu machen.

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