Существует редактор категорий, написаный на perl. Вы можете взять его в директории perl/cat_ed/.
Категории похожи на тэги, но обладают свойством вложенности. Т.е. вы можете иметь некоторую категорию внутри другой категории.
Основные моменты:
Поддерживается до 6 уровней вложенности;
Каждому уровню соответсвует 2 шестнадцати- или 36-ричные цифры;
параметром категории является path
,
который может быть пустым (что обозначает корневую категорию) или иметь длину до 10 символов (для остальных категорий,
вложенных отностительно корневой).
Также можно установить ссылку, т.е категорию, ссылающуюся на другую категорию. Для этого предназначено поле link в базе данных. В ссылке последние два символа должны быть @@. В примере выше Moto->BMW - ссылка на Auto->BMW.
Категории могут разделяться на подкатегории произвольным образом, но для того, чтобы с ними можно было работать редактором категорий, необходимо использовать по два символа на каждый уровень. Если вы используете редактор категорий, вы можете выбрать для использования 16-ричные цифры 0-F или 36-ричные 0-Z. Поэтому категория верхнего уровня 'Auto' будет обозначена 01. Если она будет иметь подкатегорию 'Ford', то мы получим 01 для верхней категории и 01 мы присвоим для 'Ford', сложим вместе и получим 0101. Если 'Auto' имеет еще одну подкатегорию, например, 'VW', её мы обозначили бы 02, т.к. 01 уже присвоено подкатегории 'Ford', т.е. в результате получим 0102. Если 'VW' имеет подкатегорию 'Engine', опять начнем с кода 01, а в результате получим 010201: 01 - 'Auto', 02 - 'VW', 01 - 'Engine'
Если вы хотите искать только среди сайтов этой категории, неободимо передать эту категорию в качестве параметра cat=010201 в URL...т.е. создайте раскладушку такого типа:
<OPTION value="01">AUTO <OPTION value="0101">Ford
и т.д....
Замечание: Для способа хранения cache вам нужно указать секцию category в вашем файле sections.conf с ненулевой максимальной длиной:
Section category 0 32 single
Category <string>
Вы можете помечать документы при помощи вложеный категорий. Категория - строка шестнадцатиричных цмфр. Вы можете иметь до 6 уровней вложенности по 256 элементов на каждом уровне. Пустая категоря означает корень дерева категорий. См. Разд. 6.2> для дальнейшего описания.
# This command means a category on first level: Category AA # This command meand a category on 5th level: Category FFAABBCCDD
CategoryIf <category> [Match|NoMatch] [NoCase|Case] [String|Regex] [loose] <section> <arg> [<arg> ... ]
Присвоить документу категорию <category>, если значение секции section
подпадает под указаный
шаблон arg
.
Значение первых трёх необязательных параметров такое же как для команды
Allow (см. Разд. 3.10.14>). Необязательный параметр loose
используется для задания
более низкого приоритета такому присвоению категории, т.е. если категория уже была присвоена на основании параметров сервера, новое значение категории присвоено не будет.
Пример
CategoryIf 010F regex Title "JOB ID"
Когда задана команда
CategoryTable mysql://user:pass@host/dbname/tablename[?charset=CHARSET]indexer будет загружать информацию о категориях из указаной SQL-таблицы tablename. См. структуру этой таблицы в файле create/mysql/create.txt. Если для вашей базы данных нет соответсвующего скрипта со структурой этой таблицы, возьмите этот файл в качестве образца.
Вы можете использовать несколько команд CategoryTable для загрузки информации о категориях из
различных таблиц. В этом случае значения полей rec_id
должны быть уникальными в пределах всех таких таблиц.
Эта команда очищает содержимое таблицы categories
.
Используйте эту команду для удалений устаревших данных перед загрузкой новых при помощи команды CategoryTable.
Пред. | Начало | След. |
Подсекции | Уровень выше | Поддержка языков |