【问题标题】:How do I create a fulltext index with multiple columns coming from multiple tables?如何创建包含来自多个表的多个列的全文索引?
【发布时间】:2019-05-03 02:10:21
【问题描述】:

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

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

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

【问题讨论】:

  • 你的数据库结构是什么?一些图像(或至少基于文本的表示)确实会有所帮助。
  • 刚刚添加了图片。谢谢

标签: mysql indexing full-text-search


【解决方案1】:

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

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

你可能会喜欢我的演示文稿Full Text Search Throwdown

【讨论】:

    【解决方案2】:

    也许你需要做以下事情……

    将您要搜索的所有列收集到一个表中。 (将它们移动到这个新表或制作副本。)这个表也将有一个 id 链接回主表。

    然后专注于使用该表优化搜索活动。

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2019-11-21
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多