Руководство пользователя / CNSearch 1.5.1
5 Дополнительные опции
5.1 Оптимизация поиска
В системе предусмотрена возможность оптимизации двух параметров:
- Скорость поиска - рекомендуется оптимизировать в случае если процесс поиска осуществляется часто либо результаты поиска отображаются медленно;
- Размер индексного файла - рекомендуется оптимизировать в случае если провайдер хоста устанавливает лимит места на диске.
5.1.1 Оптимизация скорости поиска
Для оптимизации скорости поиска рекомендуется применить следующие опции:
- Использовать дефрагментированный индекс (см. Дефрагментация);
- Использовать опцию "стоп-слова" (см. Стоп-слова);
- Использовать логическую операцию "And" (см. Параметры конфигурирования) - при этом количество обращений к диску снижается (только при условии использования дефрагментированного индекса);
- Отключить поддержку морфологии - процесс поиска осуществляется быстрее без использования словаря lang.cns.
5.1.2 Оптимизация размера индексного файла
Для оптимизации скорости поиска рекомендуется применить следующие опции:
- Использовать сокращенный вариант поискового индекса - отменить создание файла "fulltxt.cns", что приведет к уменьшению размера индекса в 1.5 - 2 раза. Данную опцию можно осуществить при помощи параметра Type в конфигурационном файле индексатора (см. search.conf);
- Отключить поддержку морфологии;
- Использовать опцию "стоп-слова".
5.2 Статистика
CNSearch осуществляет полнотекстовый поиск и предоставляет статистические отчеты для оценки содержимого сайта и релевантности его составляющих.
Статистические данные хранятся в файле 'stats.cns', который следует содержать в том же каталоге, что и поисковый индекс. В случае если cgi-скрипт, осуществляющий поиск, не сможет иметь доступа к файлу либо не будет иметь разрешение на его создание (типичная практика), то статистические данные сохраняться не будут.
Вы можете создать файл 'stats.cns' вручную и задать права доступа для него.
Доступ к статистическим данным защищен паролем, который устанавливается в конфигурационном файле клиентской части при помощи параметра Stats (см. Параметры конфигурирования), например:
-- cnsearch.conf ----------------------------- ::CONFIG stats = thisispass ::HTMLTOP <HTML> <HEAD> <TITLE>Search results - %Q</TITLE> </HEAD> ... -- end of cnsearch.conf ----------------------
Для просмотра статистических данных следует указать параметр 'stats' в URL сайта, например:
http://www.site.com/cgi-bin/search.cgi?stats=1&password=thisispass
или:
http://www.site.com/cgi-bin/search.exe?stats=1&password=thisispass
На данный момент в системе доступны два отчета:
1. Поисковые запросы;
Этот отчет отображает поисковые фразы, наиболее часто используемые посетителями Вашего сайта, и количество найденных результатов. С помощью этого отчета Вы сможете проанализировать наиболее популярные объекты поиска, процент их нахождений. Возможен просмотр статистики за любой период времени:
2. Распределение поисковых запросов по времени.
В данном отчете отображено распределение количества поисковых запросов по времени; возможна настройка просмотра данных за любой период:
В случае если Вам понадобятся другие виды статистических отчетов, пожалуйста, обращайтесь к нам; возможно, они будут включены в следующие версии программы.
5.3 Плагины
Плагины представляют собой специальные модули, позволяющие расширить функционал приложения. CNSearch использует плагины к индексным файлам различных типов.
Плагины следует хранить в том же каталоге, что и индексатор. В версиях UNIX и Linux эти файлы имеют расширение .so, в Windows - .dll. Для отключения плагина потребуется всего лишь переместить его в другой каталог.
В текущую версию приложения включены плагины, позволяющие индексировать файлы следующих типов:
| Имя файла для версии UNIX/Linux | Имя файла для версии Windows | Тип обрабатываемого документа |
|---|---|---|
| libtxt.so | libtxt.dll | *.TXT - текстовые файлы |
| librtf.so | librtf.dll | *.RTF - текстовые файлы формата RFT |
| libdoc.so | libdoc.dll | *.DOC - файлы Microsoft Word |
| libxls.so | libxls.dll | *.XLS - файлы Microsoft Excel |
| libmp3.so | libmp3.dll | *.MP3 - MPEG Layer 3 аудио-файлы |
Плагины версии 0.92 не определяют кодировку, поскольку для большинства файлов это не нужно.
Поле 'encoding' в документах, обрабатываемых плагинами, заменяется текстом, заданным в плагине; это позволяет создавать шаблоны с отображаемым типом найденного документа.
При запуске индексатор загружает все активные плагины, например:
F:\1\bin\indexer>searchctl.exe localhost CNSearch ver.0.92 [build 2073] Compiled 07.04.2002 under MS Windows 2000 [Version 5.00.2195] Rebuilding URL list...Ok. Loading library: RTF (Rich text format) Loading library: TXT (Plain text) Loading library: DOC (Microsoft Word document format) http://www.test.ru/
Главным преимуществом плагинов является возможность создания новых, позволяющих индексировать файлы особых форматов, например, изображений.
5.3.1 Создание плагина
Для создания плагина следует воспользоваться архивом 'plugin.zip', расположенным в папке '/manual' инсталляционного пакета. Данный файл содержит исходный код плагина, обрабатывающего текстовые файлы.
Для корректной работы в системе плагин должен иметь надлежащее расширение и обладать следующим набором функций:
| Название функции | Описание функции |
|---|---|
| char *get_info(void) | Возвращает строку - информацию о плагине (название) |
| char *get_mime(void) | Возвращает строку - список MIME TYPEs, обрабатываемых данным плагином и разделенных вертикальной линией "|" |
| char* get_shortdesc(void) | Возвращает строку - краткое название типа файла |
| char* get_range(void) | Возвращает строку - поле "Range" HTTP заголовка (см. RFC2068); если поле не используется возвращает значение NULL. |
| char* get_title(void) | Возвращает строку - название документа. При значении NULL отображается URL документа. |
| TPluginWord* get_word(unsigned char *d, unsigned long filesize) | Основная функция - возвращает указатель на структуру 'TpluginWord', содержащую слово, добавляемое к поисковому индексу. Данная функция должна возвращать слова, содержащиеся в документе последовательно.
|
Структура TpluginWord выглядит следующим образом:
typedef struct {
char word[32];
int rel;
bool end;
} TPluginWord;
где:
- word - слово с присоединенными значениями \0x00 справа; таким образом, максимальная длина слова равна тридцати двум символам.
- rel - релевантность слова; может варьироваться от 1 до 256. Рекомендуемые значения - от 1 до 4. В данном примере релевантность каждого слова равна 1, за исключением слова, состоящего из заглавных букв - его релевантность равна 2.
- end - имеет значение 'true', если в документе больше нет слов; в этом случае 'word' и 'rel' игнорируются.
Методы, используемые программой для генерации функций плагина:
- Функции get_info(), get_mime(), и get_shortdesc() вызываются один раз, при загружке плагина;
- Функция get_title() вызывается единожды для каждого документа, после чего вызывается функция get_word() для соответствующих документов до тех пор, пока поле 'end' структуры TwordPlugin не приобретает значение 'true'.
5.4 Стандарт блокирования поисковых роботов
5.4.1 Введение
Поисковые роботы (search bots) представляют собой программы, индексирующие веб-документы в сети Internet.
В 1993-94 годах было обнаружено, что поисковые роботы зачастую индексируют сайты против воли их владельцев. Иногда, вследствие различных причин, роботы могут проиндексировать одни и те же файлы несколько раз. В некоторых случаях поисковые роботы индексируют ненужные документы - виртуальные каталоги, временные данные либо CGI-скрипты. Для решения подобных проблем был разработан Стандарт Блокирования.
5.4.2 Функция
Для решения проблемы необходимо создать файл, содержащий информацию об управлении поведением робота с целью блокировать запрос робота к веб-серверу либо его составляющим. Данный файл должен находиться в корневом каталоге сайта '/robots.txt'.
Суть решения заключается в предоставлении роботу возможности нахождения алгоритмов, описывающих его действия по запросу только одного файла. Файл '/robots.txt' можно создать на любом действующем веб-сервере.
Выбор подобного имени файла продиктован следующими обстоятельствами:
- Имя файла должно быть одинаковым для любой операционной системы;
- Расширение файла не должно повлечь за собой необходимость реконфигурации сервера;
- Имя файла должно быть описательным и запоминающимся;
- Возможность совпадения с существующими файлами должна быть минимальной.
5.4.3 Структура
Структура и семантика файла '/robots.txt" заключается в следующем:
Файл должен содержать одну или несколько записей, разделенных одной или более строками (оканчивающимися кодом CR, CR/NL, or NL). Каждая запись должна содержать строки "<field>:<optional_space><value><optional_space>".
Поле <field> не зависит от регистра.
Комментарии задаются стандартным способом, используемым в UNIX: символ '#' обозначает начало комментария, конец линии обозначает завершение комментария.
Запись следует начинать со строки 'User-Agent' (одной или нескольких), за которой следует одна или более строк Disallow. Нераспознаваемые строки игнорируются.
User-Agent:
- Значение этого поля должно представлять собой имя поискового робота. В этой записи задаются права доступа данного робота;
- Несмотря на то, что стандарт позволяет обозначать имена нескольких роботов, приложение CNSearch распознает только одного, поскольку здесь не реализован метод разделения роботов по именам;
- Регистр не имеет значения;
- В случае если значение этого поля равно '*', то права доступа, заданные в записи, действительны для любого поискового робота, запрашивающего файл '/robots.txt'.
Disallow:
- Значение данного поля должно представлять собой частичный неиндексируемый URL. Путь к файлу может быть полным либо частичным. Например,'Disallow: /help' блокирует доступ как к файлу '/help.html', так и к файлу '/help/index.html', тогда как 'Disallow: /help/' блокирует доступ лишь к файлу '/help/index.html'.
- Любая запись должна содержать как минимум одну строку 'User-Agent' и одну - 'Disallow'.
Если файл '/robots.txt' пуст, не соответствует вышеозначенной структуре и семантике либо отсутствует, поисковые роботы действуют согласно своим настройкам.
5.4.4 Примеры:
Пример 1:
# robots.txt for http://www.site.com User-Agent: * # this is an infinite virtual URL space Disallow: /cyberworld/map/ Disallow: /tmp/ # these will soon disappear
В данном примере содержание '/cyberworld/map/' и '/tmp/' защищено.
Пример 2:
# robots.txt for http://www.site.com User-Agent: * # this is an infinite virtual URL space Disallow: /cyberworld/map/ # Cybermapper knows where to go User-Agent: cybermapper Disallow:
В данном примере поисковому роботу 'cybermapper' предоставлен полный доступ, тогда как остальные роботы не имеют доступа к содержимому '/cyberworld/map/'.
Пример 3:
# robots.txt for http://www.site.com User-Agent: * Disallow: /
В данном примере доступ к серверу запрещен любому поисковому роботу.
5.5 Использование МЕТА-тэгов "Robots"
Помимо вышеописанного стандарта блокирования поисковых роботов в системе также представлена возможность управления поведением роботов при помощи HTML-тэга 'META'.
В отличие от файла 'robots.txt', описывающего процесс индексации сайта, как единого целого, тэг 'META' позволяет управлять процессом индексации конкретной веб-страницы. Кроме того, возможна отмена индексации не только документа в целом, но и ссылок, содержащихся в нем.
Параметры индексации следует указывать в атрибуте 'content' исходного кода каждой страницы веб-сайта. Возможно использование следующих параметров:
- NOINDEX - отменить индексацию документа;
- NOFOLLOW - отменить индексацию ссылок, найденных в документе;
- INDEX - осуществить индексацию документа;
- FOLLOW - осуществить индексацию ссылок, найденных в документе;
- ALL - аналогично INDEX, FOLLOW
- NONE - аналогично NOINDEX, NOFOLLOW
Значение по умолчанию: <meta name="Robots" content="ALL">.
Примечание: не следует перечислять значения через запятую.
Пример некорректного варианта:
<META name="ROBOTS" content="noindex, nofollow">
Правильный вариант:
<META name="ROBOTS" content="none">
В данном примере индексатор позволяет анализировать документ без последующей индексации ссылок, найденных в нем:
<META name="ROBOTS" content="nofollow">
Имя тэга, а также названия и значения полей не зависят от регистра. В действительности, индексатор проверяет наличие лишь трех значений: NOINDEX, NOFOLLOW и NONE, поскольку FOLLOW и INDEX являются значениями по умолчанию.
Назад | Оглавление | Далее
