Spec-Zone .ru
спецификации, руководства, описания, API
|
Полнотекстовый поиск поддерживает расширение запроса (и в частности его различное "слепое расширение запроса"). Это обычно полезно, когда фраза поиска слишком коротка, который часто означает, что пользователь полагается на подразумеваемое знание, что полнотекстовой поисковой системе недостает. Например, пользователь, ищущий "базу данных", может действительно подразумевать, что "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" на второй передаче.
Поскольку слепое расширение запроса имеет тенденцию увеличивать шум значительно, возвращая несоответствующие документы, используйте это только, когда фраза поиска коротка.