我有一篇文章(标题,正文)存储在mysql中,我有大约1M行(名称)存储在mysql中并使用elasticsearch索引。如何找到行,在文章标题或正文中找到哪些名称(名称的100%匹配)?谢谢你的任何建议。
答案 0 :(得分:1)
您可以使用LOCATE功能:
SELECT DISTINCT N.Name FROM name_table N, article_table A
WHERE ((LOCATE(N.Name, A.Title) > 0) OR (LOCATE(N.Name, A.Body) > 0));
或加入条件:
SELECT DISTINCT N.Name FROM name_table N JOIN article_table A
ON ((LOCATE(N.Name, A.Title) > 0) OR (LOCATE(N.Name, A.Body) > 0));
Locate函数返回> 0对于这样的输入:locate('oo','Mahmood'), 要解决此问题,您可以将您的名称与空格(或',')
连接起来SELECT DISTINCT N.Name FROM name_table N JOIN article_table A
ON ((LOCATE(Concat(' ', N.Name, ' '), A.Title) > 0)
OR (LOCATE(Concat(' ', N.Name, ' '), A.Body) > 0));
您可以在条件
中添加其他连接