Полнотекстовый поиск (, ) — автоматизированный поиск документов, при котором поиск ведётся не по именам документов, а по их содержимому, всему или существенной части. Многие веб-сайты и прикладные программы (например, программы для обработки текстов) предоставляют возможности полнотекстового поиска. Некоторые системы веб-поиска, такие как AltaVista, используют методы полнотекстового поиска, в то время как другие индексируют только часть веб-страниц, проверенных своими системами индексации.

Полнотекстовый индекс Первые версии программ полнотекстового поиска предполагали сканирование всего содержимого всех документов в поиске заданного слова или фразы. При использовании такой технологии поиск занимал очень много времени (в зависимости от размера базы), а в интернете был бы невыполним. Современные алгоритмы заранее формируют для поиска так называемый полнотекстовый индекс — словарь, в котором перечислены все слова и указано, в каких местах они встречаются. При наличии такого индекса достаточно осуществить поиск нужных слов в нём и тогда сразу же будет получен список документов, в которых они встречаются.

MySQL Полнотекстовые индексы в MySQL реализуются как тип индекса FULLTEXT, который может применяться для столбцов типов , и их разновидностей. Такой индекс позволяет эффективно искать текст по ключевым словам без перебора всех строк таблицы.

Поиск выполняется с помощью функций и . Пример запроса: SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('поиск' IN NATURAL LANGUAGE MODE);

При использовании полнотекстового поиска в MySQL доступны разные режимы работы: NATURAL LANGUAGE MODE — поиск по релевантности, без логических операторов; BOOLEAN MODE — поиск с поддержкой операторов (`+`, `-`, `*`, `"..."` и др.); WITH QUERY EXPANSION — поиск с расширением запроса для увеличения количества совпадений.

Пример использования булевого режима: SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('+поиск -робот' IN BOOLEAN MODE);

Результат (жирным выделены найденные соответствия): id title body 5 Регулярные выражения В большинстве реализаций регулярных выражений есть способ производить поиск фрагмента текста … 1 Полнотекстовой поиск Полнотекстовой поиск …

См. также Поисковый робот Поисковый индекс Индексация в поисковых системах

Ссылки

Примечания

Категория:Статьи с примерами кода SQL Категория:Информационный поиск