FLUIdS
Индексация с конфигурационным файлом
При вызове программы flindex имя
конфигурационного файла индексации указывается в командной строке опцией
-c:
Он должен быть составлен в общем формате
конфигурационных файлов, принятом в FLUIdS, и кодировка его должна
совпадать с кодировкой исходных
текстов системы. Описания используемых директив и разделов приводятся ниже.
- Конфигурационные разделы:
- Main
- Defaults
- Job
- Words
В конфигурационном разделе main определяются основные директивы,
необходимые для корректного проведения процедуры индексации. Некоторые из
указанных здесь значений могут быть изменены при вызове
flindex с помощью той или иной опции.
- TempDir
- Задает имя директории для хранения временных файлов.
- В процессе индексации FLUIdS создает несколько временных файлов,
размещаемых по умолчанию в директории /tmp (для MS Windows - в
текущей директории). По ряду причин такое поведение может оказаться
неудовлетворительным:
- раздел диска, на котором находится эта директория, может не содержать
достаточного дискового пространства, чтобы вместить те данные, которые
программа flindex сохраняет во временных файлах;
- нежелательно занимать место на этом разделе диска;
- нежелательно использование общедоступной директории по соображениям
безопасности.
В таких случаях можно переопределить директорию для хранения временных
файлов, задав для этой директивы подходящее значение.
- Примеры применения директивы:
- TempDir = .
- определяет для хранения временных файлов текущую директорию
- TempDir = /var/fluids
- определяет эту директорию как /var/fluids
- TempDir = c:\\temp
- это вариант директивы для версии под MS Windows 95/NT. В этой реализации
попытка определить эту директорию как c:\ окончится неудачей: Windows
не дает возможности стандартными средствами получить атрибуты драйвов. Чтобы
определить корневую директорию драйва в качестве временной, используйте
следующий синтаксис:
- TempDir = c:\\. (т.е. указывается дополнительная точка).
- MaxMemoryVolum
- Определяет максимальный объем оперативной памяти (в байтах), выделяемый
для индекса слов в процессе индексации. Если размер получающегося индекса
слов превысит заданную величину, программа flindex сбросит данные на
диск, высвобождая оперативную память для дальнейшего использования.
- Данная директива полностью эквивалентна параметру компиляции
MAX_MEMORY_VOLUM
и позволяет изменять его значание без повторной компиляции исходных текстов
FLUIdS.
- Пример директивы:
MaxMemoryVolum = 20000000
- MaxSwapFiles
- Определяет максимальное число своп-файлов, используемых при индексации.
Значение 0 для этой директивы означает полный запрет на применение
внутреннего механизма свопинга FLUIdS. Использование сразу нескольких
своп-файлов может значительно ускорить процесс индексации для больших
объемов информации.
- Значение MaxSwapFiles ограничено максимальным числом
одновременно открытых файлов в операционной системе.
- Данная директива полностью эквивалентна параметру компиляции
MAX_SWAP_FILES
и позволяет изменять его значание без повторной компиляции исходных текстов
FLUIdS.
- Пример директивы:
MaxSwapFiles = 20
- MaxContentLength
- Директива задает максимальный размер фрагмента текста индексируемого
документа (в символах), сохраняемого в индексном файле.
- Может изменяться в пределах о нуля до
MAX_CONTENT_LENGTH,
но в любом случае не превышать последнюю величину.
- IndexFile
- Задает имя создаваемого индексного файла:
IndexName = my_index.flu
- Замечание: по умолчанию используется имя, определяемое параметром компиляции
DEFAULT_INDEX_FILE_NAME
(в начальных установках - index.flu). Кроме того, оно может
быть изменено при вызове flindex с помощью опции
-f.
- Verbose
- Определяет уровень подробности сообщаемой
информации о ходе процесса индексации. Возможные значения - 0,
1, 2 и 3. Например:
Verbose = 3
- Замечание: по умолчанию он задается значением параметра компиляции
DEFAULT_VERBOSE_LEVEL
(в начальных установках - 2). Кроме того, он может быть изменен при
вызове flindex с помощью опции -v.
- FollowLinks
- Определяет, нужно ли индексировать символьные связи или нет (по умолчанию
это запрещено):
FollowLinks = True
(можно также использовать слова Yes и On
для разрешения и слова False, No и
Off для запрещения).
- Замечание: это значение может быть изменено при вызове
flindex с помощью опции -l.
Следующие четыре директивы сообщаются дополнительные сведения
о создаваемом индексном файле. Эти сведения будут сохранены в специальной
области индексного файла. На данный момент подобная информация нигде не
используется, разве что программы flsearch и fldump выводят ее
на экран для каждого используемого индекса. Вы вольны задавать ее или нет.
Это вопрос удобства.
Для каждой из этих директив предусмотрено только одно значение, в качестве
которого выступает вся строка целиком (после знака =).
- IndexName
- задает название индекса. Это название может отличаться от имени
индексного файла, оно служит для более четкой идентификации индексного файла:
IndexName = Primary index
или
IndexName = secondhand
(имя индексного файла можно поменять, название же индекса сохраняется внутри
самого файла).
- IndexDescription
- дает краткое описание индекса. Например:
IndexDescription = Main index of SbNet's site
или
IndexDescription = Этот индекс должен использоваться только для тестовых целей
- IndexPointer
- задает указатель на ресурсы Internet, охватываемые индексом (т.е.
соответствующий URL). Например:
IndexPointer = http://www.sbnet.ru/soft/fluids/
- IndexAdmin
- задает имя администратора индекса. Может включать Email адрес. Например:
IndexAdmin = valera@sbnet.ru
В последующих версиях FLUIdS весьма вероятно более продуктивное использование
этой информации.
В этом разделе конфигурационного файла возможны любые директивы, разрешенные
в разделе job, кроме директив, задающих
непосредственно объекты индексации (сейчас подобная директива всего одна -
IndexObject), а именно:
Данные, указываемые в этом разделе, используются в двух случаях:
- когда объекты индексации заданы непосредственно в командной строке
программы flindex;
- когда в каком-либо разделе job отсутствуют
соответствующие директивы.
Если первый случай вполне прозрачен, то второй требует некоторого разъяснения.
Так, если в разделе defaults задана, например, директива replace,
а в разделе job она отсутствует, то для этого раздела job
будет действовать правило замены из defaults. Если же в разделе
job указана хотя бы одна такая директива (пусть даже пустая, т.е.
без данных), то будут применяться правила замены только из этого раздела.
Иными словами, для данного конкретного раздела job действуют
правила замены из этого раздела, если они там заданы, или же из раздела
defaults, в противном случае. Это же касается и других правил - отбора
(пять директив Ignore*/Accept*,
если хотя бы одна из них задана в текущем job, то действуют только
текущие правила отбора), определения типа индексируемого файла (директива
ctype) и определения его кодировки
(charset). Например:
[defaults]
replace = beginning "e:\\www\\docs" "/"
replace = string "\\" "/"
[job]
IndexObject = e:\\www\\docs
В этом примере для индексируемых файлов из директории e:\www\docs
будут действовать правила отбора, заданные в разделе defaults.
[defaults]
replace = beginning "e:\\www\\docs" "/"
replace = string "\\" "/"
[job]
IndexObject = e:\\www\\docs
replace = beginning "e:\\www\\docs" "http://www.mydomain.ru"
replace = string "\\" "/"
А в этом примере правила замен из раздела defaults для индексируемых
файлов из директории e:\www\docs действовать не будут.
Пустая директива выглядит следующим образом:
replace =
то есть в ней после знака равенства не должно ничего указываться. Применением
пустых директив можно добиться отмены действия той или иной директивы из
раздела defaults в текущем разделе job.
Этот раздел описывает задание по индексации. Таких разделов может быть
несколько, и для каждого задания можно определить свои особые параметры
индексации.
Раздел job использует те же директивы, что и defaults, а также
директивы, явно задающие объекты индексации (сейчас такая директива одна -
IndexObject).
- IndexObject
- Эта директива задает список файлов и директорий, подлежащих индексации.
Здесь должны быть указаны реальные файловые имена, а не
шаблоны.
- Для одной директивы можно задать сразу несколько объектов индексации.
Более того, Вы можете указать столько директив IndexObject, сколько
нужно:
IndexObject = /web/home/docs/ /web/users/
IndexObject = "f:\\apache\\share\\htdocs"
-
- Замечания:
- Для указанной в директиве директории индексируются все файлы,
лежащие в этой директории и располагающиеся ниже по файловому дереву,
удовлетворяющие правилам отбора и имеющие индексируемый тип (гипертекстовый,
просто текстовый или нетекстовый, смотрите ниже).
- Указывать на конце имени директории слэш (символ-разделитель имен
поддиректорий) не обязательно.
- Не обязательно выписывать полные имена файлов или директорий:
IndexObject = ../docs home/ index.htm
- Список объектов индексации может быть заменен при вызове
flindex явным перечислением в командной строке
имен файлов и директорий, подлежащих индексации.
- Replace
- Директивы Replace задают правила преобразования имен проиндексированных
файлов в URL, используемые для доступа к этим файлам через службы Internet
(обычно через Всемирную Паутину, по протоколу HTTP, но вполне возможно
указание другого протокола доступа, скажем, FTP).
- Преобразованию подвергаются "расширенные" имена файлов. Под
расширенностью имени файла подразумевается имя файла относительно одной из
директорий (той, конечно, внутри которой он находится), указанной в директиве
IndexObject (или в командной строке
программы flindex). Так, например, если эта
директива имеет вид
IndexObject = ../docs
то "расширенные" имена файлов будут ../docs/index.htm,
../docs/compile/flindex.htm и т.д. Если же объектом
индексации является файл (а не директория), то преобразованию подвергнется
его имя в том виде, в каком оно задано в директиве IndexObject
(или в командной строке flindex).
- Необходимо отметить, что директивами Replace должны охватываться
все имена проиндексированных файлов, чтобы в окончательном индексном файле
отсутствовали непреобразованные имена файлов.
- Директивы Replace имеют жестко заданный формат, который в
обобщенном виде можно представить следующим образом:
Replace = action initial-string final-string
Здесь action - задает тип преобразования,
inital-string - подстрока в имени файла; если она в нем
присутствует, то должна быть заменена на final-string,
если же отсутствует, то имя файла не изменяется. Строка
initial-string не может быть пустой, в то же время
final-string может быть пустой строкой и даже отсутствовать в
записи директивы. При этом использование
шаблонов в директивах не предусмотрено.
- Тип преобразования action может быть одним из:
- Beginning - изменяет начало имени файла на
другое. Например:
Replace = beginning "../docs/" "http://www.sbnet.ru/soft/fluids/"
Этой директивой локальное имя файла ../docs/index/conf.htm будет
превращено в полноценный URL http://www.sbnet.ru/soft/fluids/index/conf.htm.
- Ending - изменяет конец имени файла на другое.
Например:
Replace = ending .koi8-r ""
что для сайтов, хранящих русскоязычные страницы в разных кодировках,
которые указываются как расширения файлов, просто скроет эту избыточную
информацию. Еще пример:
Replace = ending /index.htm /
- String - заменяет все вхождения первой
указанной строки на вторую. Например:
Replace = string % %25
- Prepend - приписывает впереди имени файла
указанную строчку:
Replace = prepend http://
- Append - добавляет в конец имени файла
указанную строчку:
Replace = append ?S=N
- Допускается написание произвольного числа директив. Тогда имя файла будет
применено к первой директиве, результат преобразования - ко второй,
последний результат - к третьей, и т.д. Порядок следования директив очень
важен, поэтому он запоминается.
Рассмотрим такой пример конфигурационного файла:
[job]
IndexObject = /www/htdocs/ robots.txt
Replace = beginning /www/htdocs/ ""
Replace = prepend http://www.your-host.ru/
Имена файлов из индексируемой директории /www/htdocs/ сначала
усекутся на имя этой директории, а затем директивой prepend дополнятся
до желаемого URL. Для индексируемого же файла robots.txt директива
beginning не применяется (т.к. его имя не начинается со строчки
/www/htdocs/), а директива prepend превратит его в
http://www.your-host.ru/robots.txt.
- Ctype
- Эта директива служит для определения типа индексируемого файла в
зависимости от его имени (в особенности же от его расширения). На данный
момент FLUIdS распознает три типа файлов: гипертекстовый (в формате HTML),
просто текстовый (обычный текст без дополнительной разметки) и нетекстовый
(т.е. бинарный: графика, звук и т.д.) Если файл не попадает в эти три
категории, он не индексируется.
- Общий формат этой директивы:
Ctype = type шаблон1 ... шаблонN
Здесь type - тип файла (контента) в записи, принятой в
Интернет: text/html - для гипертекстовых файлов, text/plain -
для просто текстовых, и nontext - для нетекстовых. В последнем
случае type может иметь любое (несовпадающее с
зарезервированным) имя: */*, undefined и т.д.
Для нетекстового файла индексируется только его имя (без расширения и пути).
- В качестве значений для директивы указываются
шаблоны. Например:
Ctype = text/html *.htm *.html */.dir
Ctype = text/plain *.txt
Ctype = nontext *.jpg *.gif /www/icons/*
Важно отметить, что эти шаблоны сравниваются с расширенными именами
индексируемых файлов (т.е. имена файлов при сравнении могут содержать
какой-то префикс пути). Так, если директивы выглядят следующим образом:
IndexObject = html/ text/
Ctype = text/html html/*
Ctype = text/plain text/*
то любой файл, располагающийся ниже директории html/ будет
считаться гипертекстовым, а ниже text/ - просто текстовым.
-
- Замечания:
- Если при вызове flindex
конфигурационный файл не задан, то действуют такие правила определения типа
файла, принятые по умолчанию:
- файл гипертекстовый, если его имя подходит под шаблоны
*.htm,
*.html,
*.shtml,
*.HTM,
*.HTML,
*.SHTML;
- текстовый - под шаблоны
*.txt,
*.TXT;
- нетекстовый - под шаблоны
*.jpg,
*.jpeg,
*.gif,
*.JPG,
*.JPEG,
*.GIF.
Если же при вызове flindex
конфигурационный файл указан, то эти правила уже не действуют. Необходимо
вручную прописывать в нем подходящие значения для этих трех директив.
Описанные выше правила эквивалентны такой записи:
Ctype = text/html *.htm *.html *.shtml *.HTM *.HTML *.SHTML
Ctype = text/plain *.txt *.TXT
Ctype = nontext *.jpg *.jpeg *.gif *.JPG *.JPEG *.GIF
Для каждого зарегистрированного типа предусмотрено специальное слово
^^FLUIdSDefault^^, которое одно заменяет указанный набор
значений, например:
ctype = nontext ^^FLUIdSDefault^^ *.tgz *.gz *.Z *.zip
что эквивалентно
ctype = nontext *.jpg *.jpeg *.gif *.JPG *.JPEG *.GIF *.tgz *.gz *.Z *.zip
- Порядок следования этих директив может быть важен, поэтому он
запоминается. Сравните:
ctype = text/html *.htm
ctype = text/plain text/*
с
ctype = text/plain text/*
ctype = text/html *.htm
В первом случае гипертекстовыми считаются все файлы, имеющие расширение
htm (даже если они находятся в директории text/). Во втором же
случае гипертекстовыми будут считаться файлы с расширением htm,
которые не находятся в директории text/.
- Если исходя из значений директив Ctype не удалось определить
тип индексируемого файла, то его тип будет определяться параметром компиляции
DEFAULT_CONTENT_TYPE.
Последний может быть задан даже как cntUnknown, что означает запрет
на индексацию текущего файла.
Однако можно определить директивы так, чтобы оставшиеся файлы всегда имели
желаемый тип. Для этого достаточно в последней из директив (т.к. их
последовательность важна) задать значение "*", например:
ctype = text/html ^^FLUIdSDefault^^
ctype = text/plain ^^FLUIdSDefault^^
ctype = - *
При таких установках все файлы, которые не попали в разряд гипертекстовых
или просто текстовых, будут считаться бинарными (и это вне зависимости от
значения параметра компиляции
DEFAULT_CONTENT_TYPE).
- Charset
- Директивы Charset задают кодировку индексируемых файлов.
Необходимость в этих директивах отпадает, если все индексируемые файлы
находятся в одной кодировке, совпадающей с
рабочей кодировкой
FLUIdS.
- Общий формат директивы:
Charset = ИмяКодировки шаблон1 .... шаблонN
Здесь ИмяКодировки - известное системе имя кодировки. Вы
можете пользоваться следующими именами:
- В качестве значений указываются
шаблоны имен файлов. (Здесь с шаблонами
сравниваются "расширенные" имена файлов, см. описание директивы
Replace). Порядок следования директив
запоминается.
- Пример написания директив:
charset = win /www/docs/win/* *.win.*
charset = koi /www/docs/* *.koi8-r
charset = alt *
- Если этими директивами не охватывается имя какого-либо индексируемого
файла, то считается, что его кодировка совпадает с
рабочей кодировкой FLUIdS.
- Замечание: чтобы эти правила работали, необходимо, чтобы:
- AccessFile
- Эта директива является некоторым дополнением к директиве charset,
поскольку также позволяет определять кодировку индексируемых файлов.
AccessFile задает имя файла доступа Web сервера (обычно это
.htaccess), в котором прописывается кодировка локальных файлов
директивой CharsetSourceEnc (если используется сервер
Russian Apache).
- Пример написания директивы:
[defaults]
AccessFile = .htaccess
charset = mac *
[job]
IndexObject = /home/www
В этой конфигурации индексирующий модуль FLUIdS будет искать файл
.htaccess во всех поддиректориях /home/www. Если такой файл
будет найден, и в нем будет прописана директива CharsetSourceEnc,
то кодировка всех файлов, располагающихся в этой поддиректории и ниже по
файловому дереву, будет определяться именно значением директивы
CharsetSourceEnc, а не директивами charset конфигурационного
файла индексации.
-
- Замечания:
- Необходимо отметить, что формат записи директивы CharsetSourceEnc
несколько отличается от принятой в FLUIdS нотации:
CharsetSourceEnc koi8-r
то есть значение здесь не отделяется от имени директивы знаком равенства.
- Если в текущем разделе job или в разделе defaults
указывается директива CharsetMethods, то
файл доступа будет использоваться, только если в ней указан метод
ByAccessFile.
- Файл доступа ищется только в индексируемых директориях и применяется
для всех файлов, лежащих ниже по файловому дереву. Если в директиве
IndexObject раздела job (или в командной строке) задан
файл (а не директория), то при индексации его кодировка будет определяться
файлом доступа, только если до него индексировалась директория, лежащая
выше по файловому дереву, и содержащая файл доступа.
- Совсем не обязательно в директиве AccessFile указывать имя
"реального" файла доступа Web-сервера, можно указать имя любого файла,
специально используемого для хранения директивы CharsetSourceEnc.
- CharsetMethods
- Эта директива задает действительные методы определения кодировки
индексируемого файла и порядок их применения. Можно указать следующие методы:
- ByMetaTag - для гипертектовых файлов кодировка определяется
из тега <META HTTP-EQUIV="Content-type" CONTENT="...">
- ByAccessFile - кодировка определяется по директиве
CharsetSourceEnc файла доступа (если он задан в директиве
AccessFile)
- ByCharsetDirective - при определении кодировки учитываются
директивы charset.
Если попытка определить кодировку согласно данному методу оказалась неудачной,
то FLUIdS переходит к следующему методу. Порядок применения методов точно
такой, какой прописан в директиве.
- Ситуация, когда директива CharsetMethods не применяется, полностью
эквивалентна такой нотации:
CharsetMethods = ByAccessFile ByCharsetDirective
- ConvertToRussian
- Позволяет задать в индексируемых русских словах замены для английских
букв на русские буквы, сходные с ними по начертанию.
- В качестве значений для этой директивы должны указываться пары букв,
первая - английская, вторая - русская:
ConvertToRussian = "pр" "HН"
- В соответствии с данной директивой все индексируемые русские слова
будут проверяться на наличии в их составе английских букв, для которых
задана замена. Если такая буква будет найдена, то она будет заменена на
соответствующую русскую.
-
- Замечания:
- Индексируемое слово будет считаться русским, если в нем
встречается хотя бы одна русская буква. Так, замена 'c' на русскую 'с' не
сработает для предлога "c", записанного через английскую букву 'c'.
- Данную директиву следует использовать с осторожностью, т.к.
вполне возможны ложные срабатывания на смешанных словах, нередко
встречающихся в специальной литературе.
- Слова, содержащие как русские, так и английские буквы, не будут
проиндексированы, если задан параметр компиляции
SINGLE_LANGUAGE_WORDS
(а в начальной исталляции он задан).
Следующие пять пар директив описывают правила отбора для индексируемых
файлов и директорий. Эти правила (директивы Ignore*)
задаются как исключающие, т.е. из всей массы индексируемых файлов и
директорий исключаются из процесса индексации те, которые удовлетворяют этим
правилам. (Возможно задание соответствующих директив Accept*,
которые для подходящих файлов прекращают дальнейшую проверку на Ignore*.)
Необходимо отметить, что сами объекты индексации, то есть файлы и директории,
непосредственно указанные в директивах
IndexObject или в командной строке
программы flindex,
не подвергаются проверке на соответствие правилам отбора.
- IgnoreFileName
- не индексировать файлы, имена которых отвечают заданным
шаблонам. Например:
IgnoreFileName = .* htaccess htpasswd
что означает запрет на индексацию файлов с именами htaccess,
htpasswd и файлов, чьи имена начинаются с точки (в какой бы
индексируемой директории они не находились).
Здесь под именем файла подразумевается его укороченное имя, т.е. без
всякого префикса пути. Поэтому директива вида
IgnoreFileName = */.*
будет бессмысленна.
- AcceptFileName
- для файлов, имена которых отвечают заданным
шаблонам, прекратить дальнейшую
проверку на директивы IgnoreFileName. Например:
AcceptFileName = .*.htm
IgnoreFileName = .* htaccess htpasswd
Здесь не будет запрета на индексацию файлов, чьи имена начинаются с точки,
но имеющих расширение htm.
- IgnoreFullPathFile
- не индексировать файлы, расширенные имена которых отвечают заданным
шаблонам. Например:
IgnoreFillPathFile = /www/users/*.zip /www/users/*.{t}gz
что запрещает индексацию архивных файлов в директории /www/users/
и в любой из ее поддиректорий. Или:
IgnoreFillPathFile = /www/users/{^/}.zip
В этом случае запрет на индексацию архивных файлов касается только
непосредственно директории /www/users/.
- Замечание: под "расширенностью" имени файла подразумевается
имя файла относительно одной из директорий, указанной в директиве
IndexObject (см. описание директивы Replace).
- AcceptFullPathFile
- для файлов, расширенные имена которых отвечают заданным
шаблонам, прекратить дальнейшую
проверку на директивы IgnoreFullPathFile. Например:
AcceptFullPathFile = /www/users/{^/}.zip
IgnoreFullPathFile = /www/users/*.zip
Здесь не будет запрета на индексацию zip файлов, находящихся
непосредственно в директории /www/users.
- IgnoreDirName
- не индексировать директории, имена которых отвечают заданным
шаблонам. Например:
IgnoreDirName = */.* */cgi-bin /www/private ../docs/tmp
- Замечания:
- Если имя директории подходит под указанный шаблон, то из процесса
индексации исключаются все файловое поддерево, соответствующее этой
директории (т.е. все файлы, находящиеся в этой директории и в любой из ее
поддиректорий).
- В сравниваемом с шаблоном имени директории на конце отсутствует
символ / (символ-разделитель имен поддиректорий), поэтому
шаблонам вида /www/docs/ или
*/cgi-bin/ не будет
соответствовать ни одной директории. Более интересный шаблон
/www/docs/* приведет к тому,
что проиндексированы будут только файлы, находящиеся непосредственно в самой
директории /www/docs/, а все ее поддиректории будут проигнорированы.
- Имя директории здесь рассматривается как "расширенное" (см.
описание директивы Replace).
- AcceptDirName
- для директорий, имена которых отвечают заданным
шаблонам, прекратить дальнейшую
проверку на директивы IgnoreDirName. Например:
AcceptDirName = */cgi-bin/forum/data
IgnoreDirName = */cgi-bin
Здесь не будет запрета на индексацию файлов в директории
*/cgi-bin/forum.
- IgnoreDirWithFile
- не индексировать директорий, в которых находятся указанные файлы. В
качестве значений для директивы указываются укороченные имена файлов или
шаблоны для них. Например, директива
IgnoreDirWithFile = .htaccess .noindex
приведет к запрету на индексацию директорий (со всеми своим файлами и
поддиректориями), если в ней обнаружится файл .htaccess или
.noindex.
- AcceptDirWithFile
- разрешить индексацию директорий, в которых находятся указанные файлы. В
качестве значений для директивы указываются укороченные имена файлов или
шаблоны для них. Например, директивы
AcceptDirWithFile = .indexable
IgnoreDirWithFile = .htaccess
означают запрет на индексацию директорий, содержащих файл
.htaccess, но только если в них не будет найден файл
.indexable.
- IgnoreFileURL
- не индексировать файлы, URL'ы (интернет-адреса) которых отвечают заданным
шаблонам. Например:
IgnoreFileURL = */{^/}.cgi*
- AcceptFileURL
- разрешить индексацию файлов, URL'ы (интернет-адреса) которых отвечают
заданным шаблонам. Например:
AcceptFileURL = */forum.cgi*
С помощью директив этого раздела конкретным индексируемым словам можно
приписать особое значение.
- CommonWords
- задает статический список "часто-употребляемых" слов (стоп-слов). Такими
словами обычно являются разнообразные предлоги и артикли, которыми густо
усыпаны индексируемые тексты. Эти слова не попадают в индекс слов, а при
запросе на поиск с их участием выдается соответствующее предупреждение.
Пример директивы:
CommonWords = home they при это они
- Замечания:
- FLUIdS поддерживает также динамическое определение
"часто-употребляемых" слов с помощью параметров компиляции
IGNORE_FILES_LIMIT и
IGNORE_PERCENT_LIMIT
(или же директив IgnoreFilesLimit и
IgnorePercentLimit конфигурационного
раздела Job).
- Если программа flindex выполняется
без указания конфигурационного файла, то стоп-словами (на данный момент
развития FLUIdS) будут считаться слова
a, all, an, and, are, can,
could, did, do, for, from,
had, have, it, may, not, of,
that, the, this, was, will, with,
you, your, в, на, не, но,
при, по.
При указании же конфигурационного файла необходимо самостоятельно прописывать
"часто-употребляемые" слова (если есть такое желание). Директива
CommonWords поддерживает специальное слово
^^FLUIdSDefault^^, которое одно заменяет используемый по
умолчанию список стоп-слов, например
CommonWords = ^^FLUIdSDefault^^ про
(возможно, в дальнейшем, дефолтовый список будет расширен).
- ValidWords
- слова, определяемые этой директивой, будут считаться допустимыми
индексируемыми словами. Здесь можно перечислить слова, отвергаемые
при индексации из-за того, что они не удовлетворяют принятым
правилам отбора, т.е.
Многие из упомянутых правил отбора могут быть отключены в файле
./src/cfg.h и, следовательно,
не действовать при индексации, поэтому перечислять в этой директиве стоит
только реально отвергаемые слова. (К сожалению, индексация слов вида
TCP/IP или C++ пока не предусмотрена.) Кроме
того, для перечисленных в директиве слов не действует динамическое
определение стоп-слов. Пример директивы:
ValidWords = ip чп
- Замечание: как и в случае с директивой
CommonWords, ValidWords поддерживает
специальное слово ^^FLUIdSDefault^^, которое заменяется на
список допустимых слов, используемый по умолчанию:
ValidWords = ^^FLUIdSDefault^^
что эквивалентно такой записи:
ValidWords = 95 98 ar bg c cc cd cp dd ed h1 h2 h3 h4 h5 h6 fg id
ValidWords = im ip ln ls mc mv nc ng nt od os pr re rm sh tr vi vm wc
ValidWords = ад ом си уж ус чп юг яд яndex
- BadWords
- задает список неиндексируемых слов. Эти слова не попадут в индекс слов,
а при запросе с их участием (в отличии от CommonWords)
никаких предупреждений выдаваться не будет. С помощью этой директивы,
например, можно избавиться от слов ненормативной лексики:
BadWords = xyz
- RejectWords
- задает список шаблонов для неиндексируемых слов. С помощью этой директивы
можно задать весьма специфические правила отбора для индексируемых слов,
которые могут, впрочем, пересекаться с правилами отбора, определяемыми
соответствующими параметрами компиляции.
(Дублирование правил отбора может снизить скорость процесса индексации.)
Вот только несколько примеров применения этой директивы:
- RejectWords = ? ??
- не индексировать слова, состоящие из одной или двух букв.
- RejectWords = [0-9]* *[0-9]
- не индексировать слова, начинающиеся с цифры или кончающиеся цифрой
- RejectWords = {0-9}
- не индексировать слова, состоящие целиком из цифр
- RejectWords = *[0-9]*
- не индексировать слова, в которых встречается хотя бы одна цифра
- RejectWords = *[^a-zа-я]*
- не индексировать слова, в которых есть символы, отличные от букв
- RejectWords = *[а-я]*[a-z]* *[a-z]*[а-я]*
- не индексировать слова, в которых одновременно присутствуют английские и
русские буквы.
- MinWordLength
- определяет минимальную длину индексируемого слова. Пример директивы:
MinWordLength = 3
Согласно этой директиве, слова, состоящие из одной или двух букв,
индексироваться не будут.
- Замечание: по умолчанию минимальная длина индексируемого
слова задается параметром компиляции
MIN_WORD_LENGTH
(в начальных установках - 1).
- MaxWordLength
- определяет максимальную длину индексируемого слова. Пример директивы:
MaxWordLength = 14
что означает, что все слова, длина которых больше 14-ти символов,
индексироваться не будут.
- Замечание: по умолчанию максимальная длина индексируемого
слова задается параметром компиляции
MAX_WORD_LENGTH
(в начальных установках - 32).
- IgnoreFilesLimit
- IgnorePercentLimit
- Служат для динамического определения "часто-употребительных" слов
(стоп-слов) в тексте индексируемых файлов. Полностью эквивалентны параметрам
компиляции
IGNORE_FILES_LIMIT и
IGNORE_PERCENT_LIMIT.