Что такое шаблон |
Шаблон - это символьная строка, в которой могут присутствовать символы со специальным значением, называемые метасимволами. Шаблон используется для сравнения с другими строками, например, с именами файлов или директорий, к индексации которых готова приступить программа flindex. От результата такого сравнения будет зависеть, проиндексирует их FLUIdS или нет.
Если в шаблоне отсутствуют метасимволы, то происходит точное посимвольное сравнение двух строк. В противном случае одному шаблону может отвечать сразу целое множество строк (в нашем примере - группа файлов с адекватными именами), именно поэтому шаблоны являются столь мощным средством конфигурирования, используемом в FLUIdS.
Где применяются шаблоны |
В поисковой системе FLUIdS шаблоны применяются главным образом в двух местах: в директивах конфигурационных файлов и в качестве аргументов вызова дополнительных утилит. Ниже представлен список всех директив конфигурационных файлов (индексации и CGI модуля), в которых используются шаблоны:
Имя директивы | Конфигурационный блок | Смысл директивы | Конфигурационный файл |
---|---|---|---|
ctype | job или default | задает правила определения типа индексируемого файла | индексации |
charset | job или default | задают кодировку индексируемого файла | индексации |
IgnoreFileName | job или default | задает укороченные имена неиндексируемых файлов | индексации |
IgnoreFullPathFile | job или default | задает полные имена неиндексируемых файлов | индексации |
IgnoreDirName | job или default | задает полные имена неиндексируемых директорий | индексации |
IgnoreDirWithFile | job или default | задает укороченные имена файлов, которые индексируемая директория не может содержать | индексации |
RejectWords | words | определяет неиндексируемые слова | индексации |
allow, disallow | index | определяют IP адреса или имена станций Интернет, с которых разрешен или запрещен доступ к данному индексу | CGI модуля |
koi, win, alt, iso, sco и mac | user-agent | позволяют определить кодировку пользователя по используемому браузеру | CGI модуля |
icon | templates | задает иконки, отвечающие результатам поиска | CGI модуля |
Описание шаблонов |
В FLUIdS определяются четыре разновидности метасимволов - *, ?, [] и {}. Каждый метасимвол шаблона должен соответствовать некоторому набору символов из сравниваемой строки. Если такое соответствие установлено, то сравнение считается удачным. Ниже в таблице описываются метасимволы и соответствующие им наборы символов из сравниваемой строки:
* | означает произвольное число символов, в том числе и нулевое. Например, шаблон /usr/www/* будет соответствовать всем файлам (или директориям), чьи имена начинаются с /usr/www/, а шаблон *.htm - всем файлам с расширением htm. |
? | задает один произвольный символ. Например, шаблон movie.mp? сравнивается с movie.mpg и с movie.mp3, но не сравнивается с movie.mpeg. |
[...] | означает один символ из перечисленных в скобках. Например,
[aAbBcC] задает один из символов
'a', 'A', 'b', 'B', 'c' и 'C'. Замечание: этот метасимвол имеет расширенный синтаксис, смотрите ниже. |
{...} | соответствует произвольному числу символов из перечисленных в скобках
(в том числе и нулевому). Например, шаблон
{abc} будет сравниваться со строками,
состоящими только из символов 'a', 'b' и 'c', или с
пустой строкой. Замечание: этот метасимвол имеет расширенный синтаксис, смотрите ниже. |
Введенные выше скобочные метасимволы (т.е. [...] и {...}) имеют расширенный синтаксис:
Если в шаблоне со скобочным метасимволом отсутствует его закрывающая скобка, то шаблон признается ошибочным, а любое его сравнение со строкой - неудачным.
В среде UNIX давно используются метасимволы *, ? и []. Для большей гибкости в FLUIdS к ним добавлен {}.
Экранирование символов |
Если есть необходимость задания в шаблоне обычного символа, совпадающего по написанию с метасимволом, то его нужно заэкранировать. Это делается путем вставки перед ним символа \ (обратная косая черта). Это, кстати, относится и к самому символу \ :
c:\\my\ docs\\who\?.*
В этом шаблоне \ экранирует сам себя, пробел и знак вопроса.
Кроме того, в директивах конфигурационных файлов FLUIdS обратная косая черта способна экранировать любой другой символ, в том числе и символ " (двойные кавычки), служащий для разделения элементов строки. Так, директива
IgnoreFileNames "*\"*"
будет означать запрет на индексацию файлов, чьи имена содержат ".
На предыдущую страницу | valera@sbnet.ru |