На сервере имеется и постоянно обновляется поисковая база данных. Эта поисковая база использует механизм поиска, наподобие B-дерева, хотя, разумеется, способ реализации индексного поиска в GOOGLE является коммерческой тайной.
Для успешного функционирования подобного механизма поиска следует построить начальное поисково-классифицирующее дерево. С одной стороны, это можно считать недостатком представленного подхода, с другой – его достоинством, поскольку добавление новых документов не связано с ростом дерева и его усложнением. Построение поисково-классифицирующего дерева по исходной матрице “Терм – Документ” является интересной теоретико-прикладной задачей.
При работе с текстом большое значение приобрел поиск по шаблону. В современном программировании этот аппарат называется языком регулярных выражений. Средства для работы с регулярными выражениями в встроены в современные языки программирования, ориентированные на использовании в Интернет. Рассмотрим смысл регулярных выражений и их использование.
Регулярное выражение представляет собой шаблон, который задает набор символьных фраз, ему удовлетворяющих. Символ . (точка) соответствует любому символу. Пара \. соответствует самой точке.
Пример:
.a.\.xls
Данному регулярному выражению могут соответствовать названия файлов типа rad.xls, mar.xls и др. В квадратных скобках указывают список любых символов, их которых выбирается один (любой).
Пример.
[0-9]a.\.xls
Теперь подходящими являются имена типа 2az.xls и 0aa.xls и т.п. Выражение [^0-9] соответствует любому символу отличному от цифры. Комбинация \[ соответствует квадратной скобке.
Пример.
MyArray\[[0-9]\] соответствует myArray[1] и т.п.
Используются следующие специальные символы:
\d – любая цифра;
\D – любой нецифровой символ;
\w – любой алфавитно-цифровой символ;
+ – соответствует вхождению одного или нескольких символов.
Пример. [\w.]+ может соответствовать zzz.aaa или z.az.ww и т.д.
Знак вопроса (?) соответствует вхождению только одного или ни одного символа.
Пример. a?a порождает aba, aza, aa и пр.
В фигурных скобках указывают число вхождений:
# [0-9 A-F] {4}
соответствует, например, #0000 (четыре вхождения цифры 0).
Шаблон
\b cap
соответствует любому слову, начинающемуся с «cap», а шаблон cap\b – любому слову, заканчивающемуся на «cap».