Каждый раз когда indexer добавляет новую ссылку или выбирает очередную ссылку для индексирования, он сначала проверяет, задана ли в indexer.conf для этой ссылки команда Server, Realm или Subnet. Ссылки, не имеющие ни одной такой соответсвующей им команде не добавляются в базу, а если же такие ссылки уже находятся в базе данных (например, после удаления одной из команд Server, Realm или Subnet из файла indexer.conf), то они удаляются при очередной попытке их индексации.
Эти команды имеют один обязательный параметр pattern
и шесть необязательных:
method
, subsection
, CaseType
, MatchType
,
CmpType
и Alias
. Формат этих команд:
<команда> [method] [subsection] [CaseType] [MatchType] [CmpType] pattern [alias]
Обязательный параметр pattern
задаёт либо URL, либо его фргамент, или шаблон для сравнения.
Значение параметра subsection
должно быть одним из page,
path, site, world и по умолчанию используется значение
path.
Server path
Описывает документы, расположенные на том же сервере и в том же подкаталоге, что и аргумент URL команды Server. Например, если задана команда Server path http://localhost/path/to/index.html, все URL, начинающиеся с http://localhost/path/to/, соответствуют этой команде Server.
Следующие команды имеют одинаковый эффект на задание пространства индексации, и лишь отличаются адресами документов, добавляемых в базу при старте:
Server path http://localhost/path/to/index.html Server path http://localhost/path/to/index Server path http://localhost/path/to/index.cgi?q=bla Server path http://localhost/path/to/index?q=bla
Server site
Описывает все документы с того же самого сервера, что и аргумент команды Server. Например, Server site http://localhost/path/to/a.html описывает любой документ с сервера http://localhost/.
Server world
Если в качестве значения параметра subsection
каманды
Server задано word, то это описывает
абсолютно любой документ. См. объяснение ниже.
Server page
При этом значении параметра subsection
только URL,
указанный в качестве параметра команды Server,
соответствует этой команде.
Server nofollow
Не идти по ссылкам для любого URL, подпадающего под указаный шаблон.
subsection
для схемы news://
Для схемы news:// значение subsection
всегда равно site. Это обусловлено отсутствием в этой схемы директорий, как в схемах
ftp:// или http://. Используйте
Server news://news.server.com/ для индексирования всего ньюс-сервера. Для индексации одной
ньюсгруппы, например, udm - команду Server news://news.server.com/udm
Необязательный параметр CaseType задаёт чувствительность к регистру при сравнении строк, может принимать значения case - нувствительное к регистру сравнение, и nocase - чувствительное сравнение.
Необязательный параметр CmpType узазывает тип сравнения
и может принимать значения Regex и String.
Типа сравнения String означает сравнение строкового шаблона и
используется по умолчанию. В параметре pattern
Вы можете использовать символы ? и *,
они обозначают "один символ" и "любое число символов" соответственно. Используйте символ \ в качестве префикса перед этими специальными символами в ваших шаблонах, если вы их хотите использовать как обычнве символы. Например, если Вы хотите описать
все HTTP сайты в домене .ru, используйте эту команду:
Realm http://*.ru/*
Сравнение как регулярных выражений производится если указан параметр Regex
.
Например, Вы можете описать все HTTP сервера домена .ru, используя регулярное выражение:
Realm Regex ^http://.*\.ru/
Необязательный параметр MatchType определяет тип совпадения. Для этого параметра могут указываться два значения: Match и NoMatch, по умолчанию используется значение Match. Команда Realm NoMatch имеет обратный эффект. Это обозначает, что URL, не попадающий под указанный pattern, будет соответствовать этой команде Realm. Например, используйте эту команду для индексирования любых документов, за исключением .com доменов:
Realm NoMatch http://*.com/*
Необязательный параметр alias
позволяет организовать сложный механизм замены URL,
нежели предоставляет механизм алиасов. Смотрете Разд. 3.7> для объяснения использования параметра
alias
. Alias
работает только с типом сравнения Regex, и не даёт никакого
эффекта при типе сравнении String.
Необязательный параметр method
в командах Server, Realm
и Subnet
описывает действие, которое будет произведено с документами, соответствующими его команде
и может принимать значения
Allow, Disallow, HrefOnly,
CheckOnly, Skip, CheckMP3,
CheckMP3Only. Значением по-умолчанию является Allow.
Параметр Allow означает, что документы, соответствующие его команде, будут индексироваться, а также сканироваться на наличие новых ссылок. В зависимости от полученного Content-Type, будет зупущен соответствующий внутренний или внешний парсер, а полученные в результате слова будут помещены в индекс для поиска.
Параметр Disallow означает, что ссылки, соответствующие его команде, и появляющиеся по мере индексации, будут игнорироваться, т.е. не будут добавляться в базу данных. Те же документы, которые уже были в базе данных, и соответствующие команде, будут удаляться в момент из очередной индексации.
Параметр HrefOnly означает, что документы, соответствующие его команде, не будут индексироваться, а будут только просканированы на наличие новых ссылок. Это, например, полезно при просмотре RSS-фидов для обнаружения новых документов сайта. Используйте этот параметр для описания страниц, содержащих не сами сообщения, а списки сообщений со ссылками на них. Например:
Server HrefOnly Page http://www.site.ext/feed.xml Server Allow Path http://www.site.ext/
Параметр CheckOnly означает, что документы, соответствующие его команде, будут запрашиваться методом HTTP HEAD, а не HTTP GET, т.е. будет запрошено не содержимое документа, а только краткая информация о нем: размер, дата модификации, Content-Type. Это позволяет, например, организовать проверку своего сайта на правильность ссылок:
Server HrefOnly http://www.dataparksearch.org/ Realm CheckOnly *
Эта комбинация команд заставляет indexer сканировать все документы сайта www.dataparksearch.org и собирать ссылки, находящиеся на них. Те же документы, которые находятся вне сайта www.dataparksearch.org будут проверены методом HEAD. Команда indexer -S затем поможет увидеть все ли внутренние и внешние ссылки верны.
Параметр Skip означает, что документы, соответствующие его команде, будут пропущены при очередной индексации, и indexer вернётся к ним снова по прошествии периода устаревания документов. Иначе говоря, эти документы будут просто помечены как неустаревшие, и при этом не будут загружаться из сети, а текущяя информация о них, уже находящаяся в базе данных, будет оставлена без изменения. Эту команду можно использовать, например, для временной отмены индексации временно недоступного по каким-то причинам сайта.
Параметр CheckMP3 означает, что документы, соответствующие его команде, будут проверяться на наличие тэгов MP3 несмотря на наличие Content-Type, отличного от audio/mpeg. Это полезно, в частности, когда удаленный сервер выдает application/octet-stream в качестве Content-Type для файлов в формате MP3. При наличии MP3 тэгов будет произведена их индексация, а в случае их отсутствия indexer продолжит работу, предусмотренную для полученного Content-Type: запуск внутреннего или внешного парсера.
Этот параметр работает аналогично CheckMP3, однако при отсутствии тэгов MP3 indexer не будет запускать внутренний или внешний парсер, предусмотренный для полученного Content-Type.
Это основная команда в файле indexer.conf.
Она используется для описания веб-пространства для индексирования в виде серверов
и их частей, а также добавляет заданый URL, указанный в качестве обязательного параметра
pattern
в базу при старте indexer
для использования его в качестве стартовой точки.
Например, команда Server http://localhost/ разрешает индексировать документы сервера http://localhost/. Также, indexer вставляет документ с адресом http://localhost/ в базу данных.
Вы также можете задать некоторый подкаталог для индексирования только части сервера: Server http://localhost/subsection/. И эта команда также добавляет аргумент в базу данных для использования его в качестве стартовой точки индексирования.
Замечание: Вы можете заставить indexer не добавлять в базу URL, указанные в командах Server, задав в командной строке ключ
-q
. Это полезно, когда у вас несколько сотен или тысяч команд Server, а соответсвующие им URL уже добавлены в базу, в частности, это ускоряет запуск indexer.
Команда Realm обладает более гибкими возможностями указания веб-пространства для индексирования. Эта команда работает почти также как и команда Server, однако отличается от нее тем, что:
получает в качестве аргумента не адрес сервера или его подкаталога, а шаблон адресов.
не добавляет аргумент в качестве стартовой точки для индексирования, поскольку аргумент не является правильным адресом, а шаблоном.
Команда Subnet предоставляет другой способ задания веб-пространства для индексирования.
Она работает аналогично команде Server, с тем отличием, что указанный текстовый шаблон
сравнивается не с URL, а с IP-адресом, соответствующим проверяемому URL. Параметр pattern
для этой команды может содержать символы * и ?, обозначающие "один символ" и "любое число сиволов" соответственно, или же задаваться в виде
сети в CIDR формате (a.b.c.d/m, a.b.c, a.b, a).
Например, если нужно описать все HTTP сайты локальной подсети, используйте следующую команду:
Subnet 192.168.*.*
Subnet 192.168.10.0/24
Вы можете использовать необязательный параметр MatchType
, работающий так же,
как и аналогичный у команды Realm.
Например, если Вы хотите индексировать все, за исключением подсети 195.x.x.x, используйте:
Subnet NoMatch 195.*.*.*
Indexer перебирает команды Server и Realm в том порядке, в каком они указаны в файле конфигурации. Таким образом, если Вы хотите задать различные параметры, например, для всего сервера и некоторых его подсекций, Вы должны добавить строки для секций до строк, относящихся к серверу целиком. Представим, что на Вашем сервере есть директория, содержащая страницы с новостями. Очевидно, эти страницы необходимо переиндексировать чаще, нежели остальные части содержимого сервера. Следующая последовательность команд может быть полезна в этом случае:
# Add subsection Period 200000 Server http://servername/news/ # Add server Period 600000 Server http://servername/
Эти команды задают другой период переиндексирования для поддиректории /news/ в отличие от периода индексирования остального сервера. indexer выбирет первую команду Server для http://servername/news/page1.html т.к. это первая соответсвующая URL команда Server.
The third scheme is very useful for indexer -i -f url.txt running. You may maintain required servers in the url.txt. When new URL is added into url.txt indexer will index the server of this URL during next startup.
URL http://localhost/path/to/page.html
Эта команда добавляет указаный URL в базу. Это полезно когда нужно добавить несколько стартовых точек для одного сервера. Не имеет эффекта, если указываемый URL уже находится в базе.
URLDB pgsql://foo:bar@localhost/portal/links?field=url
Эти команды аналогичны командам Server, Realm, Subnet
и URLсоответственно, но аргументы для вставки в базу выбираются из указанного поля SQL-таблицы.
В примере выше ссылки выбираются из базы portal
, SQL-таблицы links
и поля url
.
URLFile url.lst
Эти команды аналогичны командам Server, Realm, Subnet
и URLсоответственно, но аргументы для вставки в базу выбираются из указанного текстового файла, в котором
каждый аргумент указывается на отдельной строке.
В примере выше ссылки выбираются из текстового файла url.lst
, расположенного в директории
/usr/local/dpsearch/etc. Однако можно указывать и полный путь до файла с аргументами.
DataparkSearch соблюдает стандарт robots.txt. robots.txt - файл, помещаемый в корневую директорию вашего веб сервера, указывающий поисковым машинам, какие страницы вы не хотите индексировать.
DataparkSearch также соблюдает мета тэги: nofollow
, noarchive
и noindex
.
DataparkSearch также поддерживает директивы Crawl-delay
и Host
в robots.txt.
Ниже указаны команды в файле indexer.conf, относящиеся к стандарту исключений для роботов.
Robots yes/no
Разрешает или запрещает использование robots.txt и <META NAME="robots" ...>
для исключения страниц. Используйте no
, например, для проверки ссылок на вашем сайте или сайтах.
Имейте в виду, что игнорирование чужих robots.txt не приветсвуется сетевым этикетом.
Команда действует до конца файла, или до следующей команды Robots.
Значение по умолчанию: yes.
Robots yes
По умолчанию, данные из robots.txt хранятся в SQL-базе одну неделю. Вы можете изменить этот период используя команду RobotsPeriod:
RobotsPeriod <time>См. формат <time> в описании команды Period из Разд. 3.10.28>.
RobotsPeriod 30d
Используйте эту команду для задания периода в секундах между последовательными запросами к одному и тому же серверу. Аналогична команде crawl-delay в файле robots.txt, но может быть задана в indexer.conf файле для каждого сервера в отдельности. Если не задано значение crawl-delay value в robots.txt, используется значение, указаное в CrawlDelay. Если значение crawl-delay указано в robots.txt, тогда используется максимальное значение из CrawlDelay и crawl-delay.
Когда indexer готов индексировать очередной URL с сервера, для которого интервал Crawl-deley с предыдущего обращения к сайту еще не истек, он ожидает, пока этот период не истечет, если период ожидания в секундах меньше значения, указанного командой MaxCrawlDelay. Если период ожидания больше или равен этому значению, выбранный URL откладывается в индексировании на период ожидания.
MaxCrawlDelay 60
Значение по-умолчанию: 300 секунд.
Пред. | Начало | След. |
Клоны документов | Уровень выше | Алиасы |