Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014-01 Третьякова_Инстр. средства ИС / Лекционный материал / Раздел 2. Использование полнотекстового приска.odt
Скачиваний:
24
Добавлен:
20.02.2016
Размер:
81.96 Кб
Скачать

Запросы полнотекстового поиска

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

  • Одно или несколько конкретных слов или фраз (простое выражение).

  • Слова, начинающиеся заданным текстом, или фразы с такими словами (префиксные выражения).

  • Словоформы конкретного слова (производное выражение).

  • Слова или фразы, находящиеся рядом с другими словами или фразами (выражения с учетом расположения).

  • Синонимические формы конкретного слова (тезаурус).

  • Слова или фразы со взвешенными значениями (взвешенное выражение)

В полнотекстовых запросах не учитывается регистр букв. Например, поиск значения «Алюминий» или «алюминий» вернет одинаковые результаты.

Все полнотекстовые запросы используют небольшой набор предикатов Transact-SQL (CONTAINS и FREETEXT) и функций (CONTAINSTABLE и FREETEXTTABLE). Однако точная структура полнотекстовых запросов определяется целями поиска данного бизнес-сценария. Например:

  • Электронный бизнес — поиск продукта на веб-сайте:

SELECT product_id FROM products WHERE CONTAINS(product_description, ”Snap Happy 100EZ” OR FORMSOF(THESAURUS,’Snap Happy’) OR ‘100EZ’) AND product_cost<200 …
  • Сценарий комплектования штата — поиск кандидатов, имеющих опыт работы с SQL Server:

SELECT candidate_name,SSN FROM candidates WHERE CONTAINS(candidate_resume,”SQL Server”) AND candidate_division =DBA

Дополнительные сведения см. в разделеЗапрос с полнотекстовым поиском.

[В начало]

Сравнение like с полнотекстовым поиском

В отличие от полнотекстового поиска, предикатLIKEв Transact-SQL работает только с комбинациями символов. Кроме того, предикат LIKE нельзя использовать в запросах к форматированным двоичным данным. Более того, запрос с предикатом LIKE к большому количеству неструктурированных текстовых данных выполняется гораздо медленнее, чем эквивалентный полнотекстовый запрос к тем же данным. Выполнение запроса LIKE к нескольким миллионам строк текстовых данных может занять несколько минут, в то время как полнотекстовый запрос к тем же данным занимает всего несколько секунд или даже меньше, в зависимости от количества возвращаемых строк.

[В начало]

Компоненты и архитектура полнотекстового поиска


Архитектура полнотекстового поиска состоит из следующих процессов.

  • Процесс SQL Server (sqlservr.exe).

  • Процесс узла управляющей программы фильтрации (fdhost.exe).

    По соображениям безопасности фильтры загружаются отдельными процессами, которые называются узлами управляющей программы фильтрации. Процессы fdhost.exe создаются службой запуска FDHOST (MSSQLFDLauncher) и выполняются под учетными данными безопасности учетной записи службы запуска FDHOST. Следовательно, чтобы работало полнотекстовое индексирование и выполнялись полнотекстовые запросы, должна быть запущена служба FDHOST. Сведения о настройке учетной записи службы см. в разделеНастройка учетной записи службы средства запуска управляющей программы полнотекстовой фильтрации.

Эти два процесса содержат компоненты архитектуры полнотекстового поиска. Эти компоненты и их связи приведены на следующей иллюстрации. Описание компонентов приведено после иллюстрации.

[В начало]