MySQL - нужно искать в таблице URL-адресов URL-адреса, содержащие указанное слово - PullRequest
0 голосов
/ 25 июля 2010

У меня есть таблица URL-адресов, и мне нужно найти все URL-адреса, содержащие ключевое слово, например «fogbugz» или «amazon». Если ключевое слово появится в URL-адресе, я бы хотел, чтобы оно было результатом.

Прямо сейчас я пытаюсь:

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

Что предсказуемо медленно, даже если URL проиндексирован.

Я открыт для альтернативных методов быстрого индексирования, включая методы сценариев. Я думал о том, чтобы просмотреть каждый URL, разделить его на символы «/», затем «_ или -» и сохранить их в отдельной таблице url2keyword. При использовании этого метода URL-адрес, например: "http://www.foo.com/directory/article-name", будет иметь в качестве ключевых слов" foo "" directory "" article "" name ". Просто идея.

Конечно, если есть более простой способ сделать это в MySQL или вообще, я бы предпочел это.

Я хотел бы получить ваши предложения по этому вопросу! Спасибо.

1 Ответ

1 голос
/ 25 июля 2010

Вы можете попробовать полнотекстовый поиск (http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html). Недостатком является то, что вы также получите приблизительные результаты, поэтому вам, вероятно, придется выполнить еще один проход по результатам, чтобы выбрать те, которые вы делаете, и не делатьне хочу.

...