Використання повнотекстового пошуку N1

■ есколько років тому я написав програму пошуку слів у

II&nbsp&nbsp&nbsp U великої базі даних Програма сканувала всі документи і створювала таблицю частоти слів як асоціацію багато до багатьох між нею і таблицею документів Програма працювала досить добре, і пошук виконувався досить швидко Я отримав задоволення від виконаної роботи, але вам надаються більш сприятливі умови

Серверна версія операційної системи Windows містить структуровану систему індексації слів і фраз, звану MS Search Це не просто звичайне сканування слів – механізхм повнотекстового пошуку здійснює лінгвістичний аналіз, відокремлюючи коріння слів і спряг дієслова на різних мовах SQL Server взяв на озброєння цей механізм для повнотекстового пошуку в рядках і стовпцях

Стандарт ANSI SQL використовує оператор like для пошуку слів, дозволяючи використовувати символи макропідстановки Наступний фрагмент програми виконує пошук в навчальній базі даних Fables, що містить байки Езопа:

— SQL Where Like SELECT Title FROM Fable

WHERE Fabletext LIKE ,%lion%

AND Fabletext LIKE %bold%

Результат виконання інструкції наступний:

Title

The Hunter and the Woodman

У всіх прикладах, які наводяться у цій главі, використовується база даних Fables Сценарій Aesop_Create sql створює цю базу даних і наповнює її двадцятьма пятьма байками Езопа Всі приклади програм, наведені у цій главі, містяться у файлі Chl3sql

Основна проблема використання вираження where Like полягає в низькій продуктивності Індекси створюються за першими літерами слова, тому оператор like word% виконається досить швидко, але в той же час продуктивність оператора like % word% залишає бажати кращого Пошук подстрок в рядках не може використовувати структуру двійкового дерева для прискорення роботи, тому доводиться вдаватися до сканування таблиць (рис 81) Це все одно що шукати всіх Іванов у телефонній книзі Телефонні книги не впорядковані по іменах, тому дана задача потребують перегляду абсолютно всіх сторінок

Беручи це до уваги, компанія Microsoft в кінці 1998 року переробила свої пошукові механізми для версії SQL Server 7 Новий механізм отримав назву MSSearch і був також використаний для здійснення пошуку в програмах Exchange і SharePoint Зовсім окрема версія цього механізму була підготовлена ​​до виходу операційної системи SQL Server 2000

Повнотекстовий пошук у версії SQL Server 2005 представляє вже третє покоління пошукових механізмів і є найбільш повнофункціональним і масштабованим Служба повнотекстового пошуку входить до складу редакцій Standard, Workgroup і Enterprise,

Пошуковий механізм, що поставляється з SQL Server 2005, носить назву MSFTESQL за замовчуванням він відключений Для включення цієї служби потрібно запустити утиліту SQL Server Surface Area Configuration Tool, розгорнути пункт Surface Area Configuration for Services and Components, розкрити свій екземпляр сервера і знайти вузол Full-Text Search Потім слід встановити перемикач для цього вузла в положення run automatically

Механізм повнотекстового пошуку створює індекси для всіх істотних слів і фраз, вирішуючи тим самим проблему продуктивності До того ж механізм повнотекстового пошуку володіє рядом додаткових функцій, зокрема наступними

■ Пошук одного слова, що знаходиться поруч з іншим

■ Використання в пошуковій фразі символів макропідстановки

■ Пошук різних словоформ (наприклад, ran, run і running)

■ Зважування слів і фраз, які більш істотні, ніж інші

■ Виконання нечіткого пошуку слів і фраз

■ Пошук символьних даних з впровадженими двійковими обєктами

Найбільш істотним поліпшенням у версії SQL Server 2005 є підвищення продуктивності практично в 10-100 разів у порівнянні з повно-текстовим пошуком версії SQL Server 2000 Існують і інші поліпшення, наприклад довірчі фільтри, поліпшена підтримка мов, нечутливість до наголосам, підтримка тезауруса, многостолбцових запитів, повязаних серверів, реплікації, резервування баз даних, підключення та відключення каталогів, індексації властивостей документа і усунення помилок

Новий механізм пошуку MSFTESQL (абревіатура від Microsoft Full-Text Engine for SQL Server), що входить до складу SQL Server 2005, був повністю перероблений для підвищення продуктивності і тепер повністю інтегрований в сервер

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*