DataparkSearch 4.26 Руководство: Поисковая машина
Пред. | Глава 3. Индексирование | След.

# Хранение сжатых копий документов

DataparkSearch имеет возможность хранения сжатых копий проиндексированных документов. Копии сжимаются и хранятся при помощи нового демона - stored, который устанавливается в поддиректорию `sbin` корневой директории установки DataparkSearch (по умолчанию: `/usr/local/dpsearch/sbin`).

DataparkSearch stored может быть использован для создания цитат документов на основе слов из запроса. Для задания приблизительного размера цитаты в байтах, используйте в `search.htm` (в секции `variables`) команду ExcerptSize. Значение, используемое по умолчанию, равно 256.

В DataparkSearch можно хранить сжатые копии документов без использования демона stored. Для этого вместо настройки параметров stored в файле конфигурации `indexer.conf` необходимо указать команду DoStore yes.

Сохраненные копии документов отображаются отдельной CGI-программой `storedoc.cgi`. Эта программа получает сохранённую копию от stored и отображает содержимое этого документа в окне броузера предварительно выделив слова из поискового запроса.

Для использования возможностей stored, скомпилируйте DataparkSearch с поддержкой `zlib`:

    ./configure --with-zlib <other arguments>

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

Перед использованием stored, пожалуйста, проделпйте следующее:

- Скопируйте `/usr/local/dpsearch/etc/stored.conf-dist` в `/usr/local/dpsearch/etc/stored.conf`.

  Отредактируйте `/usr/local/dpsearch/etc/stored.conf`

  Следующие команды используются для конфигурирования stored:

  - Listen говорит stored к какому адресу и/или порту привязаться. По умолчанию, stored привязывается к порту 7004 и каждому адресу. Возможно указывать только порт:

    `Listen 7004`

    Или только адрес:

    `Listen 127.0.0.2`

    Или оба, алрес и порт:

    `Listen 127.0.0.2:7004`

  - VarDir задаёт альтернативную рабочую директорию `var/`, например:

    `VarDir /mnt/d/dpsearch/var/`

  - StoredFiles указывает число файлов-хранилищ, создаваемых в директории `var/stored/`, например:

    `StoredFiles 256`

  - OptimizeInterval задаёт интервал в секундах между попытками оптимизировать очередной файл-хранилище, например:

    `OptimizeInterval 300`

  - OptimizeRatio задаёт уровень дефрагментации в процентах, по достижении которого файл-хранилище оптимизируется, например:.

    `OptimizeRatio 3`

- Запустите stored:

  `/usr/local/dpsearch/sbin/stored &`

- Отредактиируйте `indexer.conf` и `search.htm` (или `searchd.conf`, если используется searchd). Укажите адрес и порт, кроторые `indexer` будет использовать для связи с stored. Используйте параметр `stored` команды DBAddr, например:

  `DBAddr mysql://localhost/search/?dbmode=cache&stored=localhost:7004`

## Как работает stored

После того, как вы сконфигурируете и запустите stored, `indexer` будет передавать ему проиндексированные документы. А stored будет сжимать полученные документы и сохранять их на диске.

## Использование stored при поиске

Для включения отображения сохраненных документов при поиске, проделайте следующее:

- Отредактируйте `storedoc.htm` (шаблон для `storedoc.cgi`), если необходимо.

- Добавьте в секцию `<!--res-->` шаблона `search.htm` ссылку на `storedoc.cgi`, например: `<A HREF="$(stored_href)">Cached copy</A>`

- Укажите URL CGI-программы `storedoc.cgi` в `search.htm` (по умолчанию `$(stored_href)` будет возвращать `/cgi-bin/storedoc.cgi`). Если вам необходимо указать другой URL, добавьте в раздел переменных шаблона `search.htm` следующую строку:

  `StoredocURL /path/to/storedoc.cgi`

  Или для абсолютной ссылки:

  `StoredocURL http://servername/path/to/storedoc.cgi`

Если все сконфигурировано правильно, при поиске stored работает следующим образом:

1. `search.htm` показывает ссылку на `storedoc.cgi`;

2. Когда пользователь кликает по ссылке, `storedoc.cgi` посылает запрос к демону stored по адресу, указанному в `storedoc.htm` при помощи параметра `stored` команды DBAddr;

3. По этому запросу, stored находит и разжимает запрошенную копию и отправляет ее `storedoc.cgi`;

4. `storedoc.cgi` разбирает полученный документ и выделяет все слова из поискового запроса. Способ выделения указывается в шаблоне `storedoc.htm` командами HlBeg and HlEnd;

Пред. | Начало | След.
Использование syslog | Уровень выше | HTML-парсер в DataparkSearch