【问题标题】:Find items, related to article by name [closed]按名称查找与文章相关的项目[关闭]
【发布时间】:2016-08-23 01:22:18
【问题描述】:

我有一篇文章(标题、正文)存储在 mysql 中,我有大约 1M 行(名称)存储在 mysql 中并使用 elasticsearch 进行索引。如何在文章标题或正文中找到行,找到哪些名称(名称 100% 匹配)?感谢您的任何建议。

【问题讨论】:

标签: php mysql elasticsearch


【解决方案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));

您可以在条件中添加其他连接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 2014-07-29
    相关资源
    最近更新 更多