Более продвинутые функции поисковой системы при поиске с SQL

Я должен «искать» в базе данных MySQL, содержащей тысячи комментариев (максимум 200 символов) с традиционным «полем поиска» (как на большинстве веб-сайтов). Я пытался с SQL, как:

SELECT * FROM comments  WHERE text LIKE 'Bonjour monsieur'

Но тогда, чтобы обеспечить хорошие возможности поиска, мы должны первый дисплей результаты с Bonjour monsieur, а затем отобразить результаты с обоими словами Bonjour а также monsieur (но, может быть, не один рядом с другим), и затем результаты с Bonjour или же Monsieur и т.п.

Кроме того, существует необходимость в поиске без учета регистра, и много подобных вещей (é e ê можно считать одинаковыми буквами для поиска) и т. д.

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

Есть ли встроенная функция в PHP / MySQL для обеспечения этих функций «поисковой системы», или мне нужно кодировать их с нуля?

Примечание: это не тема, в которой задается вопрос «для чего предназначен конкретный инструмент …» (я знаю, что такие вопросы часто рассматриваются как OffTopic в SO), я просто хочу знать, существуют ли эти функции, или мне нужно написать все сам с нуля.

0

Решение

Если вы используете MySQL 5.1, вы можете установить плагин stemmer.

http://forge.mysql.com/projects/project.php?id=215
http://forge.mysql.com/projects/project.php?id=42

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]