类似于文本搜索的替代方案

时间:2015-03-06 15:03:35

标签: mysql wildcard sql-like text-mining

我有两个表,一个包含应用程序名称,首字母缩写词和别名(TBL_APPLICATIONS),另一个包含三列中的文本,即标题,描述和分辨率(TBL_LOGS)。我需要在这三个文本列中找到应用程序参数,以便搜索可能的关系。我的SQL看起来像这样:

select i.id,ap.ApplicationID 
from TBL_LOGS i 
INNER JOIN 
TBL_APPLICATIONS ap      
ON 
(
i.title LIKE CONCAT('% 'ap.name ,' %') OR 
i.title LIKE  CONCAT('% ', ap.acronym ,' %') OR 
i.title LIKE CONCAT('% ', ap.alias ,' %') OR 
i.description LIKE CONCAT('% ', ap.name ,' %') OR 
i.description LIKE  CONCAT('% ', ap.acronym ,' %') OR 
i.description LIKE CONCAT('% ', ap.alias ,' %') OR 
i.resolution LIKE CONCAT('% ', ap.name ,' %') OR 
i.resolution LIKE  CONCAT('% ', ap.acronym ,' %') OR 
i.resolution LIKE CONCAT('% ', ap.alias ,' %')
);

DB是MySQL,TBL_LOGS中的三列是longtext类型。这个SQL需要8分钟才能执行,两个表中的数据大约是60K行。如果没有喜欢和通配符,有没有办法做到这一点?

0 个答案:

没有答案