Поиск
Полнотекстовый поиск с расширением запроса
Начиная с MySQL 4.1.1, полнотекстовый поиск поддерживает расширение запроса (в частности, вариант "слепого расширения запроса" (blind query expansion)). Это применимо, как правило, когда поисковая фраза слишком короткая, что часто означает, что пользователь полагается на некие подразумеваемые знания, которых механизм полнотекстового поиска обычно не имеет. Например, пользователь, выполняя поиск по слову "database", может иметь в виду, что фразы с "MySQL", "Oracle", "DB2" и "RDBMS" должны соответствовать поисковому слову и быть также возвращены. Это подразумеваемое знание.
Слепое расширение запроса (также известное, как автоматическая релевантная обратная связь (automatic relevance feedback)) осуществляется путем добавления WITH QUERY EXPANSION следом за искомой фразой. Это работает за счет выполнения двойного поиска — когда к искомой фразе при втором проходе добавляются несколько документов из вершины списка, сгенерированного на первом проходе. Таким образом, если один из этих документов содержит слово "database" и слово "MySQL", второй проход поиска обнаружит документы, содержащие "MySQL", даже если в них не будет "database". Следующий пример демонстрирует эту разницу:
mysql> SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST ('database') ;

Технику, представленную во втором примере, можно использовать для поиска книг, скажем, Жоржа Сименона о комиссаре Мегрэ, когда пользователь не знает точно, как пишется "Мегрэ". Поиск по "Megre and the reluctant witnesses" найдет только "Maigret and the Reluctant Witnesses" без расширений запроса. Поиск с расширением запроса найдет все книги со словом "Maigret" на втором проходе.
На заметку!
Поскольку слепое расширение запроса имеет тенденцию ощутимо увеличивать количество "шума", возвращая нерелевантные документы, это имеет смысл применять, только когда поисковая фраза достаточно короткая.