跨多个表的MySQL全文搜索

Sam*_*uel 13 mysql search full-text-search

我有一系列表,包含我想要全文搜索的数据.我已尝试将表合并UNION,但结果丢失了其全文索引,因此无法进行全文搜索.我不认为将数据放入临时表是可行的方法.有道理我可以全文搜索这些表吗?提前致谢!

更新: 我的全文查询是

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")
Run Code Online (Sandbox Code Playgroud)

ben*_*ley 12

MySQL无法在多个表中创建全文(或任何)索引.所以使用单个索引就出来了.

作为替代方案,您可以:

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

  2. 创建聚合表以应用索引.

  3. 使用lucene或solr等工具提供搜索索引.(如果你想要任何规模,这可能是最好的选择)


Big*_*dMe 6

将相关性分数相加:

SELECT ID, Title, Description, Author, 
MATCH (Title) AGAINST ("search terms") +
MATCH (Tags) AGAINST ("search terms") +
MATCH (Body) AGAINST ("search terms") 
AS Relevance
Run Code Online (Sandbox Code Playgroud)