Документация

Chestnut FTP Search

Установка

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

Создание базы данных

Создайте базу данных с предпочтительной кодировкой. Для PostgreSQL это выглядит примерно так:

# su -c psql postgres
postgres=# CREATE DATABASE название_вашей_бд WITH ENCODING 'utf8';
postgres=# CREATE ROLE ваш_пользователь WITH PASSWORD 'ваш_пароль' LOGIN;
postgres=# GRANT ALL PRIVILEGES ON DATABASE название_вашей_бд TO ваш_пользователь;

Имейте введу что кодировка базы данных должна совпадать с кодировкой локали кластера баз данных, иначе нечувствительные к регистру функции будут работать не корректно.

Для MySQL это выглядит примерно так:

  $ mysql -u root
  mysql> CREATE DATABASE название_вашей_бд CHARACTER SET cp1251 COLLATE cp1251_general_cs;
  mysql> GRANT ALL PRIVILEGES ON название_вашей_бд.* TO 'ваш_пользователь'@'localhost' IDENTIFIED BY 'ваш_пароль';

Заметьте что не рекомендуется использовать многобайтные кодировки, такие как UTF-8, с MySQL, потому что регулярные выражения в MySQL не поддреживают многобайтные кодировки. Также заметьте что требуется чувствительный к регистру collation.

Установка файлов и создание схемы БД

Распакуйте архив и запустить скрипт configure.py:

$ tar xjf chestnut-ftp-search-ВЕРСИЯ.tar.bz2
$ cd chestnut-ftp-search
$ ./configure.py create-config
$ ./configure.py create-schema

Это создаст конфигурационный файл config.py и таблицы базы данных. Параметры базы данных будут запрошены интерактивно.

Отредактируйте config.py в соответствии с вашими предпочтениями.

Добавления записи crontab

Для поддержания индексов в актуальном состоянии вам нужно добавить следующую запись crontab:

$ crontab -e
0 * * * * /ПУТЬ/К/chestnut-ftp-search/indexer.py

Заметьте, что вы можете указывать короткий период, потому что действительный период индексации хранится в базе данных для каждого отдельного сервера (вы можете изменить его при помощи srvman.py).

Also note that you may run indexer as daemon process (with --daemon option). The crontab entry for indexer is not needed If you run indexer as daemon process.

Также заметьте что вы можете запускать индексировщик как фоновый процесс (с опцией --daemon), при этом запись crontab не нужна.

Если индикатор состояния сервера включен в вашей конфигурации, вам нужно периодически запускать пинговщик для обновления информации о состоянии:

*/5 * * * * /ПУТЬ/К/chestnut-ftp-search/pinger.py

Заполнение базы данных

Добавьте информацию о всех FTP серверах, которые вы хотите индексировать:

$ ./srvman.py add ftp.example1.net
$ ./srvman.py add ftp.example2.net
$ ./srvman.py add ftp.example3.net
...

Чтобы получить список всех доступных опций, выполните:

$ ./srvman.py add --help

Теперь вы можете приступить к индексированию немедленно используя indexer.py или подождать пока cron запустит его. Вы можете запускать одновременно несколько процессов индексировщика, и они не будут конфликтовать, так как они сами разберутся какие процессы какие серверы будут индексировать.

Доступность по HTTP

Используя Apache и FastCGI

Необходимо чтобы модули mod_rewrite и mod_fastcgi или mod_fcgid были установлены и включены. Скопируйте htaccess-fcgid в .htaccess

Для получения информации о других методах размещения смотрите http://webpy.org/install, http://webpy.org/cookbook

Обновление

Чтобы обновить Chestnut FTP Search распакуйте архив с новой версией в каталог установки перезаписывая существующие файлы:

$ cd /ВАШ/КАТАЛОГ/УСТАНОВКИ
$ tar xjf /ПУТЬ/К/chestnut-ftp-search-ВЕРСИЯ.tar.bz2 --strip-components 1

Далее выполните команду миграции:

$ ./configure.py migrate ПРЕДЫДУЩАЯ_ВЕРСИЯ

Также проверьте файл UPGRADE на замечания по обновлению конкретных версий.

Использование

Как работает частичное совпадение

При поиске с режимом частичного совпадения строка запроса представляет собой любую подстроку в имени файла.

Как работает точное совпадение

При поиске с режимом точного совпадения строка запроса представляет собой точное имя файла.

Как работают регулярные выражения

При поиске с режимом регулярного выражения строка запроса представляет собой POSIX-совместимое регулярное выражение. Фактически синтаксис зависит от сервера базы данных.

Как работает шаблон оболочки

При поиске в режиме шаблона оболочки стока запроса представляет собой шаблон оболочки. Шаблон оболочки может содержать метасимволы такие как: * (совпадает с любым количеством любых символов, и даже с их отсутствием), ? (совпадает с любым одним символом), [строка] (совпадает с одним и только одним символом, содержащимся в строке), {строка1,строка2,...} (совпадает с одним и только одним вариантом из: строка1,строка2,...).

Как работает поиск с транслитерацией

При поиске с транслитерацией строка запроса транслируется в символы ASCII, и оба варианта: оригинал и транслит используются при поиске.

На данный момент только символы кириллицы и некоторые из набора Latin 1 могут быть транслированы в символы ASCII.

Заметьте, что по умолчанию поиск с транслитерацией отключен. Чтобы разрешить пользователям использовать поиск с транслитерацией установите TRANSLIT_ENABLE = True в config.py.

последним исправлял(а) LostCluster 2009-10-16 01:17:00