Spec-Zone .ru
спецификации, руководства, описания, API

12.9.3. Полнотекстовые Поискы с Расширением Запроса

Полнотекстовый поиск поддерживает расширение запроса (и в частности его различное "слепое расширение запроса"). Это обычно полезно, когда фраза поиска слишком коротка, который часто означает, что пользователь полагается на подразумеваемое знание, что полнотекстовой поисковой системе недостает. Например, пользователь, ищущий "базу данных", может действительно подразумевать, что "MySQL", "Oracle", "DB2", и "RDBMS", все - фразы, которые должны соответствовать "базы данных" и должны быть возвращены, также. Это - подразумеваемое знание.

Слепое расширение запроса (также известный как автоматическая обратная связь уместности) включается, добавляя WITH QUERY EXPANSION или IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION после фразы поиска. Это работает, выполняя поиск дважды, где фраза поиска для второго поиска является исходной фразой поиска, связанной с немногими наиболее очень соответствующими документами от первого поиска. Таким образом, если один из этих документов содержит слово "базы данных" и слово "MySQL", второй поиск находит документы, которые содержат слово "MySQL", даже если они не содержат слово "база данных". Следующий пример показывает это различие:

mysql> SELECT * FROM
        articles    WHERE MATCH (title,body)    AGAINST ('database' IN NATURAL LANGUAGE MODE);+----+-------------------+------------------------------------------+| id | title             | body                                     |+----+-------------------+------------------------------------------+|  1 | MySQL Tutorial    | DBMS stands for DataBase ...             ||  5 | MySQL vs. YourSQL | In the following database comparison ... |+----+-------------------+------------------------------------------+2 rows in set (0.00 sec)mysql> SELECT * FROM articles    WHERE
        MATCH (title,body)    AGAINST ('database' WITH QUERY
        EXPANSION);+----+-----------------------+------------------------------------------+| id | title                 | body                                     |+----+-----------------------+------------------------------------------+|  5 | MySQL vs. YourSQL     | In the following database comparison ... ||  1 | MySQL Tutorial        | DBMS stands for DataBase ...             ||  3 | Optimizing MySQL      | In this tutorial we will show ...        ||  6 | MySQL Security        | When configured properly, MySQL ...      ||  2 | How To Use MySQL Well | After you went through a ...             ||  4 | 1001 MySQL Tricks     | 1. Never run mysqld as root. 2. ...      |+----+-----------------------+------------------------------------------+6 rows in set (0.00 sec)

Другой пример мог искать книги Жоржем Сименоном о Maigret, когда пользователь не уверен, как записать "Maigret". Поиск "Megre и неохотные свидетели" находит только "Maigret и Неохотных Свидетелей" без расширения запроса. Поиск с расширением запроса находит все книги со словом "Maigret" на второй передаче.

Отметить

Поскольку слепое расширение запроса имеет тенденцию увеличивать шум значительно, возвращая несоответствующие документы, используйте это только, когда фраза поиска коротка.