DataparkSearch Engine 4.53: Справочное руководство
Пред. |  | След.

# Глава 3. Индексирование

# 3.1. Общая информация об индексировании

## 3.1.1. Конфигурирование

Сначала необходимо сконфигурировать DataparkSearch. Конфигурирование indexer полностью описано в файле `indexer.conf-dist`. Вы найдете его в директории `etc` исходников DataparkSearch. Вы также можете посмотреть примеры в директории `doc/samples`.

Для установки файла `indexer.conf` перейдите в директорию DataparkSearch `/etc`, скопируйте `indexer.conf-dist` в `indexer.conf` и отредактируйте последний.

Для конфигурирования CGI-программы поиска (`search.cgi` и/или `search.php3`, или другой), Вы должны в директории DataparkSearch `/etc` скопировать файл `search.htm-dist` в `search.htm` и отредактировать последний. См. Разд. 8.3> для подробного описания.

## 3.1.2. Запуск indexer

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

По умолчанию, indexer, вызванный без всяких параметров командной строки, переиндекирует, только устаревшие документы. Вы можете задать период "старения" при помощи команды Period в `indexer.conf`. Если Вам необходимо переиндекировать все документы, независимо от того, устарели они или нет, используйте ключ `-a`. indexer при запуске пометит все документы как устаревшие.

Запрашивая документы, indexer посылает HTTP заголовок `If-Modified-Since` для документов уже находящихся в базе. Когда indexer получает очередной документ, он вычисляет контрольную сумму документа, если она совпадает со старой контрольной суммой, хранящейся в базе данных, докумен заново не разбирается (считается неизменённым) Ключ indexerа `-m` заставляет разбирать заново каждый документ, независимо от того, измён он или нет. Это может быть полезным, например, когда меняются правила Allow/Disallow в `indexer.conf` и необходимо добавить новые страницы, которые раньше были запрещены к обработке.

Если на запрос документа DataparkSearch получает HTTP-статусы переадресации 301,302,303, он попытается проиндексировать URL, указанный в заголовке `Location:` ответа сервера.

## 3.1.3. Создание SQL-таблиц

Для создание SQL-таблиц, необходимых для работы DataparkSearch, используйте `indexer -Ecreate`. При запуске с таким аргументом, indexer ищет файл, содержащий SQL-выражения, необходимые для создания всех таблиц, учитывая тип базы данных и режим хранения, указанные в команде DBAddr в `indexer.conf`. Поиск файлов производится в каталоге `/share` инсталляции DataparkSearch, т.е. обычно в `/usr/local/dpsearch/share/`.

## 3.1.4. Удаление SQL-таблиц

Для удаления SQL-таблиц, созданных DataparkSearch, используйте `indexer -Edrop`. Поиск файл с запросами для удаления таблиц производится в каталоге `/share` инсталляции DataparkSearch.

## 3.1.5. Управление подсекциями

indexer имеет ключи `-t, -g, -u, -s, -y` для ограничения работы только с чатью базы ссылок. `-t` соответсвует ограничению по тэгу, `-g` соответсвует ограничению по категории, `-u` - ограничение по части URL (поддерживаются шаблоны SQL LIKE с символами % и _), `-s` - ограничение по HTTP статусу документа, `-y` - ограничения по Content-Type. Все ограничения для одного и того же ключа объединяются опрератором ИЛИ, а группы разных ключей - оператором И.

## 3.1.6. Как очистить базу данных

Чтобы очистить всю базу данных, используйте команду indexer -C. Вы можете также удалить тольеко часть базы, используя ключи указания подсекций `-t,-g,-u,-s,-y`.

## 3.1.7. Статистика базы данных

Если Вы запустите indexer -S, Вы получите статистику базы данных включающую общее число документов, и число устаревших документов для каждого статуса. Ключи указания подсекций также действуют для этой команды.

Значения кода статуса:

- 0 - новый (еще ни разу не индексированный) документ

Если статус не 0, он равен коду HTTP ответа, некоторые коды ответов HTTP:

- `200` - "OK" (url успешно проиндексирован)

- `301` - "Moved Permanently" (переадресован на другой URL)

- `302` - "Moved Temporarily" (переадресован на другой URL)

- `303` - "See Other" (переадресован на другой URL)

- `304` - "Not modified" (url не модифицирован со времени предыдущего индексирования)

- `401` - "Authorization required" (нужен login/password для этого документа)

- `403` - "Forbidden" (нет доступа к этому документу)

- `404` - "Not found" (указаный документ не существует)

- `500` - "Internal Server Error" (ошибка в cgi, и т.д.)

- `503` - "Service Unavailable" (Хост недоступен, таймайт соединения)

- `504` - "Gateway Timeout" (таймаут при получении документа)

Код ответа `HTTP 401` обозначает, что документ защищён паролем. Вы можете использовать команду AuthBasic в `indexer.conf` для указания `login:password` для URL.

Код ответа `HTTP 404` означает, что на одной из Ваших страниц есть ссылка на несуществующий документ, или есть ошибка в указании URL..

Смотрите документацию по HTTP для подробного объяснения различных кодов ответа HTTP.

## 3.1.8. Проверка ссылок

Будучи запущенным с ключом `-I`, indexer показывает пары URL и страница, ссылающаяся на него. Это полезно для поиска битых ссылок на Ваших страницах. Вы также можете использовать ключи ограничений подсекций для этого режима. Например, `indexer -I -s 404` покажет адреса всех ненайденных ('Not found') документов вместе с адресами страницами, содержащими ссылки на эти документы. Таким образом Вы можете использовать DataparkSearch для проверки ссылок на Вашем сайте.

## 3.1.9. Параллельное индекирование

Пользователи MySQL и PostgreSQL могут запускать несколько indexer одновременно с одним и тем же файлом конфигурации `indexer.conf`. Мы успешно опробовали 30 одновременно работающих indexer использующих базу данных MySQL. Indexer использует механизм блокировки MySQL и PostgreSQL для избежания двойного индексирования одних и тех же документов разными одновременно работающими indexer. Параллельное индексирование может работать некорректно с остальными поддерживаемыми SQL серверами. Вы можете использовать многопоточную версию indexer c любым SQL сервером, поддерживающим параллельные соединения с базой. Многопоточная версия использует свой собственный механизм блокировки.

Не рекомендуется использовать одну и ту же базу с различными файлами конфигурации `indexer.conf`! Один процесс может добавлять некоторые документы в базу, в то время как другой - удалять эти же документы, и оба могут работать без остановки.

С другой стороны, Вы можете запускать несколько indexer c различными файлами конфигурации и различными базами для любого поддерживаемого SQL сервера.

Пред. | Начало | След.
Регистрация установки |  | Реакция на коды HTTP-ответа