Полнотекстовый поиск

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Полнотекстовый поиск (англ. Full text searching, фр. Recherche en texte integral) — автоматизированный поиск документов, при котором поиск ведётся не по именам документов, а по их содержимому, всему или существенной части.[1]

Полнотекстовый индекс[править | править вики-текст]

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

Реализации[править | править вики-текст]

MySQL[править | править вики-текст]

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

Поиск выполняется с помощью функций MATCH() и AGAINST():

SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('database');

Результат:

id title body
5 Мутация Мутационный эффект — …
1 Полнотекстовой поиск Полнотекстовой поиск …

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]