在同一张桌子上有3个FULLTEXT索引..如何合并它们?在我的桌子

在同一张桌子上有3个FULLTEXT索引..如何合并它们?在我的桌子

问题描述:

我有3个不同的FULLTEXT索引像这样:在同一张桌子上有3个FULLTEXT索引..如何合并它们?在我的桌子

FULLTEXT KEY `product_name` (`product_name`,`product_description`), 
FULLTEXT KEY `product_brand` (`product_brand`,`metal_type`,`primary_stone`,`product_type`,`product_type_sub`,`product_series`), 
FULLTEXT KEY `primary_stone_sub` (`primary_stone_sub`) 

这是因为我其实像这样后添加他们:

ALTER TABLE cart_product ADD FULLTEXT(columnA, columnB); 

Q1如何合并这3个到1个FULLTEXT指数?

Q2而且,所以这不会再发生,我将如何添加一个FULLTEXT列到已经存在FULLTEXT索引?

谢谢!

看起来你只想拥有1个FULLTEXT索引,包含所有这些列。是对的吗?您也可以在此表上包含多个FULLTEXT索引,其中一个包含所有列,另一个包含子集。这一切都取决于你的用法。

只记得从manual这个警告,并确保你的全文索引列的列表(S)符合您所查询反对完全列:

  • 的MATCH()列列表必须完全在列列表匹配一些表的FULLTEXT索引定义,除非这个MATCH()是IN BOOLEAN MODE。布尔模式搜索可以在非索引列上完成,尽管它们可能很慢。

回答这两个问题是,你需要删除现有的索引并重新创建它的列的更新列表:

ALTER TABLE cart_product 
    DROP INDEX `product_name`, 
    DROP INDEX `product_brand`, 
    DROP INDEX `primary_stone_sub`, 
    ADD FULLTEXT INDEX `cart_product_fti` (
`product_name`, 
`product_description`, 
`product_brand`, 
`metal_type`, 
`primary_stone`, 
`product_type`, 
`product_type_sub`, 
`product_series`, 
`primary_stone_sub` 
); 
+0

感谢您的信息! – 2010-07-15 16:44:09