如何创建包含来自多个表的多个列的全文索引?

时间:2019-05-03 02:10:22

标签: mysql indexing full-text-search

我有两个表(产品和品牌表),我需要创建一个全文索引来支持我网站的搜索功能。我想要一个包含产品的品牌名称和产品名称的索引。对于这种情况,列来自不同的表。

我现在所知道的是从一个表中的单个或多个列创建全文索引。

这是我当前正在处理的数据库的预览: Database Preview Here

2 个答案:

答案 0 :(得分:1)

MySQL不支持涵盖多个表的 any 类型的索引。 索引的所有列都必须来自单个表。

如果您需要在多表数据集上创建搜索引擎,则可以考虑将JOIN查询的结果导出到全文搜索引擎,例如Sphinx Search或Solr(ElasticSearch中的软件)

您可能喜欢我的演讲Full Text Search Throwdown

答案 1 :(得分:0)

也许您需要执行以下操作...

将要搜索的所有列收集到一个表中。 (将它们移动到新表中或进行复制。)该表中还将有一个id可以链接回主表。

然后集中精力使用该表优化搜索活动。

请注意,在将列复制到表中时,您可以进行一些清理(删除干扰搜索的kruft,例如html标记,替代拼写等)。

看看您的架构,我几乎认为这是不应该进行规范化的情况。