Mysql Поиск доменных имен - PullRequest
0 голосов
/ 13 июня 2009

У меня есть таблица, полная доменных имен. Я хотел бы сделать поиск, который возвращает какие-то результаты релевантности на нем. Моя проблема заключается в том, что если я выполняю поиск «круто», я хочу, чтобы он возвращал «cooldomain.com», а полнотекстовый поиск, если я не делаю это неправильно, не будет.

Существуют ли какие-либо полнотекстовые опции, о которых я не знаю, которые будут выполнять это? Если нет, то как бы я это сделал?

Ответы [ 4 ]

0 голосов
/ 05 августа 2009

Вам нужно будет установить индекс FULLTEXT для вашей таблицы и затем сделать что-то вроде этого:

SELECT *, MATCH(domain_name) AGAINST ('{search term here}' IN BOOLEAN MODE) as Relevance 
FROM domains 
WHERE MATCH (domain_name) AGAINST('{search term here}' IN BOOLEAN MODE) 
ORDER BY Relevance DESC
0 голосов
/ 13 июня 2009

Попробуйте что-то вроде

SELECT * FROM domains WHERE domain_name LIKE 'cool%';
0 голосов
/ 13 июня 2009

Я бы использовал здесь LIKE, полнотекстовый поиск для сопоставления с полными словами или выражениями, расширения запроса и т. Д. И я думаю, что оператор * может использоваться только в качестве суффикса при использовании MATCH так что вы будете скучать по imcool.com ...

Я думаю, вам придется собрать больше информации для сортировки по релевантности.

Edit: Если вы хотите использовать индекс, вы также можете сохранить слова домена в другом столбце и использовать возможности полнотекстового поиска для этого ...

0 голосов
/ 13 июня 2009

Старый добрый WHERE domain LIKE '%cool%' будет соответствовать, но не возвращает "релевантность" - я не уверен, как вы это определили.

...