0

我在使用 symfony2 实现 Match Against 时遇到了问题,但由于 stackoverflow,我几乎解决了这个问题: MATCH AGAINST script is not working with Symfony2

我按照 Picoss 所说的做了,但现在我遇到了另一个问题:

SQLSTATE[HY000]:一般错误:1214 使用的表类型不支持 FULLTEXT 索引

在谷歌上进行一些搜索后,我认为原因是因为 InnoDB 表类型,但我不知道如何在 Symfony2 中更改它(我必须在由 fosuserbundle 实体生成的表上搜索某些内容。第二种解决方案可以是升级我的mysql版本(我实际上是5.1.66-0版本,但我不确定它是否能解决问题)。

你还有其他建议吗 ?

谢谢

4

2 回答 2

0

您可以在 @ORM/Table 定义中添加引擎选项:

对于注释:

<?php

namespace My\Bundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * MyEntity
 *
 * @ORM\Table(name="my_entity", options={"engine"="MyISAM"})
 * @ORM\Entity(repositoryClass="My\Bundle\Entity\Repository\MyEntityRepository")
 */
class MyEntity
{
    //...
}

希望这可以帮助

于 2013-07-11T13:31:52.447 回答
0

有一种方法可以用 Doctrine 做到这一点:

/**
 * @ORM\Table(name="your_table_name", indexes={@ORM\Index(name="escape", columns={"name"}, flags={"fulltext"})})
 * @ORM\Entity(repositoryClass="...\YourRepository")
 */
class YourEntity extends SomeClass {

}
于 2020-03-11T09:35:32.317 回答