2010-07-24 71 views
0

我有一個網址表,我需要找到任何包含關鍵字的網址,例如「fogbugz」或「amazon」。如果關鍵字出現在網址的任何位置,我希望這是一個結果。MySQL - 需要搜索包含指定單詞的URL的URL表

現在,我想:

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

這是可預見的緩慢,甚至當URL被索引。

我很樂意爲替代方法快速建立索引,包括腳本方法。我正在考慮瀏覽每個網址,將它分成「/」和「_或 - 」字符,並將它們存儲在單獨的url2關鍵字表中。使用這種方法,URL:「http://www.foo.com/directory/article-name」將具有「foo」「目錄」「文章」「名稱」作爲其關鍵字。只是一個想法。

當然,如果在MySQL中有更簡單的方法來做到這一點,或者一般情況下,我更喜歡這樣做。

我想就此事提出您的建議!謝謝。

回答

1

您可以嘗試全文搜索(http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html)。缺點是你也會得到近似的結果,所以你可能需要對結果進行再次傳遞,以挑選出你不想要的結果。

+0

我剛剛創建了一個帶有url的MyISAM表格,類似'%whatever%'的搜索需要它在InnoDB中執行的時間的1/20。 – Sambo 2010-07-24 21:10:16

+0

@Sambo:INNODB進行開銷 - 交易,關係完整性等。 – 2010-07-24 21:12:11

+0

+1:擊敗我。 – 2010-07-24 21:12:38

相關問題