【问题标题】:MySQL - Need to search URL table for URLs containing a specified wordMySQL - 需要在 URL 表中搜索包含指定单词的 URL
【发布时间】:2011-03-20 14:32:17
【问题描述】:

我有一个 URL 表,我需要找到任何包含关键字的 URL,例如“fogbugz”或“amazon”。如果关键字出现在 URL 中的任何位置,我希望它是结果。

现在,我正在尝试:

SELECT url FROM url WHERE url LIKE '%keyword%'

这是可以预见的缓慢,即使 url 被编入索引。

我愿意接受其他快速索引的方法,包括脚本方法。我正在考虑遍历每个 URL,用“/”然后“_ 或 -”字符将其拆分,并将它们存储在单独的 url2keyword 表中。使用这种方法,像“http://www.foo.com/directory/article-name”这样的 URL 将使用“foo”“directory”“article”“name”作为其关键字。只是一个想法。

当然,如果在 MySQL 中有更简单的方法可以做到这一点,或者一般来说,我更愿意这样做。

我想听听您对此事的建议!谢谢。

【问题讨论】:

    标签: mysql search indexing sql-like


    【解决方案1】:

    您可以尝试全文搜索 (http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html)。缺点是您也会得到近似结果,因此您可能需要再次遍历结果才能挑选出您想要和不想要的结果。

    【讨论】:

    • 我刚刚创建了一个包含 url 的 MyISAM 表,类似 '%whatever%' 的搜索需要它在 InnoDB 中执行的时间的 1/20... 有什么用?跨度>
    • @Sambo:INNODB 承载开销——事务、关系完整性等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多