Базы данных - ЛИНТЕР - статьи

         

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


Понятие «полнотекстовый» (или фразовый) поиск подразумевает поиск по полному тексту или по всем текстовым полям документа (БД). Любой текстовый документ, как правило, имеет внутреннюю структуру - деление на параграфы, отступ для заголовка, для подписи, таблицы. Текстовые редакторы позволяют делать эту структуру достаточно сложной - выделять текст шрифтами и вариантами их начертания, делать списки, выравнивание и т.д. и т.п. Кроме того, различные редакторы имеют разные форматы хранения данных (.doc, .html, .rtf, .txt и др.). Некоторые документы (например, в формате .html), помимо средств визуального оформления информации, имеет разметку внутренней структуры - заголовок, тело документа, ключевые слова. Поэтому в задачу полнотекстового поиска входит понимание внутренней структуры и «расшифровка» разных форматов документов с помощью специальных средств - конверторов или фильтров.

СУБД ЛИНТЕР со средствами фразового поиска рекомендуется использовать в проектах, где основными определяющими факторами являются скорость поиска и извлечения текста по фразе в больших хранилищах информации (например, WWW-сервер). Средства фразового поиска дают возможность упростить схему хранения данных в приложении и избежать создания некоторых дополнительных таблиц.

Система фразового поиска обеспечивает:

  • варианты поиска слов: по началу, окончанию, подстроке, целому слову, поиск с использованием символов шаблона;
  • поиск по словам, набранным с ошибками (нечеткий поиск). Поддерживаются три основных типа ошибок (перестановка, пропуск, замена буквы).

  • Завершением транзакции управляет пользователь, однако, процедура также может зафиксировать или откатить изменения, сделанные в ее теле (и теле ее дочерних процедур) операторами COMMIT и ROLLBACK.

    Для упрощения обработки ошибок в языке хранимых процедур предусмотрен механизм работы с исключительными ситуациями, в качестве которых могут рассматриваться ошибки выполнения SQL - запросов, ошибки времени исполнения (вызов несуществующей процедуры, деление на ноль и т.д.) или пользовательские исключения.

    В момент возникновения исключения управление сразу автоматически передается на соответствующую ветку блока обработки исключений (EXCEPTIONS), что избавляет от необходимости «засорения» кода процедуры многочисленными условными операторами, проверяющими результат завершения каждого оператора. Процедура может обработать исключение либо завершиться и передать исключение на верхний уровень (оператор RESIGNAL).

    Процедуры могут использоваться как хранимые функции, расширяющие язык SQL.

    Для загрузки текста хранимой процедуры (триггера) используются:

  • spc – утилита с командным интерфейсом;


  • spman – утилита с псевдографическим интерфейсом;




  • lindeskx – графическая утилита администрирования;


  • обычный программный интерфейс подачи SQL -запросов.


  • Утилиты spman и lindeskx являются полноценными средами для разработки и отладки хранимых процедур и триггеров.

    Они обеспечивают:

  • создание, просмотр, редактирование исходного кода объектов отладки;


  • управление постоянными точками останова (добавление, удаление, запрет, разрешение, определение/ редактирование свойств);


  • запуск на выполнение объекта отладки по команде пользователя или наступлению события;


  • различные режимы работы:


    • выполнение с прерыванием в точках останова;


    • пошаговое выполнение;


    • выполнение до временной точки останова;


    • выполнение до возврата;


    • выполнение с трассировкой.


    • задание и просмотр отладочной информации:


      • просмотр локальных переменных;


      • отслеживаемые переменные и выражения;


      • вычисление выражений;


      • просмотр стека вызовов;


      • ведение протокола отладки.



      • Содержание раздела