我有两个表(产品和品牌表),我需要创建一个全文索引来支持我网站的搜索功能。我想要一个包含产品的品牌名称和产品名称的索引。对于这种情况,列来自不同的表。
我现在所知道的是从一个表中的单个或多个列创建全文索引。
这是我当前正在处理的数据库的预览: Database Preview Here
答案 0 :(得分:1)
MySQL不支持涵盖多个表的 any 类型的索引。 索引的所有列都必须来自单个表。
如果您需要在多表数据集上创建搜索引擎,则可以考虑将JOIN
查询的结果导出到全文搜索引擎,例如Sphinx Search或Solr(ElasticSearch中的软件)
您可能喜欢我的演讲Full Text Search Throwdown。
答案 1 :(得分:0)
也许您需要执行以下操作...
将要搜索的所有列收集到一个表中。 (将它们移动到新表中或进行复制。)该表中还将有一个id
可以链接回主表。
然后集中精力使用该表优化搜索活动。
请注意,在将列复制到表中时,您可以进行一些清理(删除干扰搜索的kruft,例如html标记,替代拼写等)。
看看您的架构,我几乎认为这是不应该进行规范化的情况。