跨多个表的 MySQL 全文搜索 [英] MySQL full text search across multiple tables

查看:39
本文介绍了跨多个表的 MySQL 全文搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一系列表格,其中包含我想要全文搜索的数据.我尝试将表格与 UNION 结合使用,但结果丢失了全文索引,因此无法进行全文搜索.我不认为将数据放入临时表是要走的路.有什么办法可以有效地全文搜索这些表吗?提前致谢!

I have a series of tables that contain data I want to full text search. I've tried combining the tables with UNION, but the result loses its fulltext index so can't be fulltext searched. I don't think that putting the data into a temp table is the way to go. Is there someway that I can fulltext search these tables efficiently? Thanks in advance!

更新:我对全文的查询是

UPDATE: my query for fulltext was

SELECT ID, Title, Description, Author, MATCH (Title,Tags,Body) AGAINST ("search terms") AS Relevance 
FROM [combination of tables goes here] 
WHERE MATCH (Title,Tags,Body) AGAINST ("search terms")

推荐答案

MySQL 无法在多个表中创建全文(或任何)索引.所以使用单一索引是不行的.

MySQL can't make a fulltext (or any) index accross multiple tables. So using a single index is out.

作为替代方案,您可以:

As an alternative, you could either:

  1. 在每个表上使用索引,并根据需要使用连接/联合来检索符合您要求的行.

  1. Use an index on each table, and a join/union as appropriate to retrieve the rows that match your requirements.

创建一个聚合表来应用索引.

Create an aggregate table to apply the index to.

使用 lucene 或 solr 等工具提供搜索索引.(如果您要进行任何类型的扩展,这可能是最佳选择)

Use a tool such as lucene or solr to provide your search index. (If you are going for any sort of scale, this is likely the best option)

这篇关于跨多个表的 MySQL 全文搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆