跨多个表的 MySQL 全文搜索

MySQL full text search across multiple tables(跨多个表的 MySQL 全文搜索)
本文介绍了跨多个表的 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 全文搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)