Соответствующие результаты поиска из таблицы MySQL - PullRequest
0 голосов
/ 29 октября 2009

Каков наилучший способ получения супер релевантных результатов из таблицы MySQL? У меня есть список сайтов в таблице с заголовком, описанием и тегами. Как я могу настроить функцию запроса / поиска SELECT в PHP, которая будет находить введенные пользователем ключевые слова во всех этих трех столбцах и, оставаясь максимально быстрым, помнить следующее:

  • Соответствия в названии будут наиболее релевантными, но, очевидно, совпадения в названии, а также в описании / тегах будут еще более актуальными
  • Совпадения в тегах будут вторыми по значимости
  • Ключевые слова могут быть сопоставлены в любом порядке
  • Не является обязательным требованием, но если все ключевые слова не совпадают, они могут соответствовать любому из них (я не уверен, что это сделает вызов слишком медленным)

Есть ли какие-то конкретные изменения, которые мне нужно внести в мою таблицу?

Ответы [ 3 ]

0 голосов
/ 30 октября 2009

Самый простой способ - использовать полнотекстовый индекс для всех этих столбцов.

Однако полнотекстовые индексы в mysql не дадут вам детального контроля над весом различных столбцов. Для этого вам нужно что-то вроде люцен или сфинкс .

0 голосов
/ 30 октября 2009

Естественным подходом IMHO будет позволить PHP перемещаться по набору записей, чтобы вы могли применять логическую запись к записи.

Вы можете ожидать, что захотите усовершенствовать свою логику в будущем. Обработка ваших потребностей с помощью кода позволит вам сделать это легко.

Не могу сказать о структуре вашей таблицы, так как вы не предоставили подробностей.

0 голосов
/ 30 октября 2009

Простого ответа нет. «и оставаясь как можно быстрее» не является ограничением. Ты должен: 1) поставить реальную цель 2) попробуй добиться этого сам

Может случиться, что самый простой запрос работает хорошо, и вам больше ничего не нужно делать.

Порядок ВСЕГДА пишите рабочий код, попробуйте его и, если он не работает, оптимизируйте его. Вы делаете это наоборот и тратите время впустую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...