> Главная > Продукты и услуги > Купить > Компания
English / Русский

Текущая версия

CNSearch: 2.0.1

Руководство пользователя / CNSearch 1.5.1

4.2 Модуль поиска

4.2.1 cnsearch.conf

Конфигурационный файл модуля поиска (по умолчанию cnsearch.conf) размещается в одном каталоге с файлом 'search.exe' (search.cgi для Unix) и представляет собой текстовый файл, оптимизированный для ускоренного процесса поиска.

Файл cnsearch.conf состоит из двух частей:

Структура конфигурационного файла выглядит следующим образом:

::CONFIG regcode = Enter Your registration code here
::CONFIG stats = password
::CONFIG content-type = text/html

::HTMLTOP
<HTML>
  <TITLE>This is the top part of the HTML document</TITLE>
</HEAD>
<BODY>

::HTMLRESULT
<P>This the description of the found page.
There will be displayed 10 such descriptions.

::HTMLNOTFOUND
<P>This text will be displayed if no search
results will be found


::HTMLBOTTOM
This is the bottom part of the HTML document
</BODY>
</HTML>

В конфигурационном файле возможно использование однострочных комментариев; каждый комментарий начинается с символа "#".

4.2.1.1 Параметры конфигурирования

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

Path

Параметр задает путь к поисковому индексу и может использоваться в случае если Вы не собираетесь хранить индекс в каталоге 'cgi-bin' либо планируете использовать несколько поисковых индексов.

Пример:

::CONFIG path=/home/www/search/en/

Для MS Windows:

::CONFIG path=d:\www\search\en\

Content-Type

Параметр определяет поле Content-type заголовка. По умолчанию - "text/html". Результаты поиска могут также формироваться в виде XML-файла.

Пример:

::CONFIG content-type = text/xml

SearchType

Параметр определяет логику поиска:

Логическая операция "And" - наиболее быстрая; рекомендуется к использованию в случае если размер поискового индекса превышает 100Mb.

Логическая операция "Combined" рекомендуется к использованию на небольших сайтах с общим количеством страниц не более 50.

Пример:

::CONFIG SearchType = Combined

Stats

Параметр задает пароль для доступа в интерфейс статистических данных (см. Статистика).

Пример:

::CONFIG stats = secret

RegCode

Параметр задает регистрационный код (подробнее о регистрации на официальном сайте приложения).

Пример:

::CONFIG regcode = JF7KF-KFJEP-4KSFT-K49GN-FJ40F

StopWords

Параметр определяет термин, отображаемый в результатах поиска при условии использования опции %P (найденные стоп-слова).

Пример:

::CONFIG StopWords =, Ignored Words : 

MaxRelevance

Параметр задает максимальную релевантность страниц отображаемых в результатах поиска. Страницы с релевантностью большей чем MaxRelevance игнорируются. Этот параметр позволяет повысить качество поиска путем "выбрасывания" страниц с подозрительно высокой релевантностью. Обычно это страницы не содержащие много текста или содержащие слишком часто повторяющиеся ключевые слова.

Пример:

::CONFIG MaxRelevance = 4000

NonStrictMatch

Параметр задает термин, отображаемый в результатах поиска при условии использования опции %S (соответствие поисковому запросу). Используется только совместно с логической операцией "Combined" (см. выше).

Пример:

::CONFIG NonStrictMatch = [non strict match]

4.2.1.2 Настройка шаблонов

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

Пример:

-- cnsearch.conf ----------------------------------------
# This is a cnsearch configuration file
                   
::CONFIG regcode = Enter Your registration code here
::CONFIG stats = password
::CONFIG content-type = text/html
::CONFIG NonStrictMatch = [non strict match]
::CONFIG StopWords =, Ignored Words : 
::CONFIG SearchType = Combined

::HTMLTOP
<HTML>
<HEAD>
<TITLE>Search results - %Q</TITLE>
</HEAD>
<BODY>
<table width=400 height=40 align=center bgcolor=#C0C0C0>
<form action="%F" method=get><tr><td align=center>
<input type=text name=q size=40 maxlength=64 value="%Q">
<input type=submit value="Search">
</td></form></tr></table>
Documents found: %O
   <B>%O</B><font color=gray>%W<B>%P</B></font><br>
<br>
<div align=right>
Sort by: <a href="%A">date</a> | <a href="%L">relevancy</a>
</div>


::HTMLRESULT
<HR>
<UL>
<LI>%N. <a href="%U" target=_new>%T</A> <small>
        <font color=red>%S</font> [Relevancy: %R]</small>
<UL>
<LI>%E
<LI>%D
<LI>%C
<LI><a href="%U" target=_new>%u</A>
</UL>
</UL>


::HTMLNOTFOUND
<P><font color=red>%Q not found</font>


::HTMLBOTTOM
%B
</BODY>
</HTML>
-- end cnsearch.conf ------------------------------------

4.2.1.3 Использование различных шаблонов

В системе предусмотрена возможность использования различных вариантов шаблонов для отображения различных модификаций поискового интерфейса и использования различных индексных файлов в процессе поиска. Для использования нескольких шаблонов следует задать параметр 'template' в исходном коде поисковой формы. Если параметр 'template' не задан, по умолчанию используется стандартный шаблон 'cnsearch.conf'.

В качестве названия шаблона может фигурировать любое произвольное наименование. Название шаблона должно содержать только латинские буквы (верхнего либо нижнего регистра) и арабские цифры; необязательно добавлять 'conf.' к названию.

Правильный вариант:

<input type="hidden" name="template" value="black">

Неправильный вариант:

<input type=hidden name="template" value='../black'>
<input type=hidden name="template" value='red.htm'>

Ниже представлен пример использования шаблона, позволяющего пользователю:

Пример:

-- en.conf ---------------------------------------------
::CONFIG path=/home/www/search/en
::CONFIG regcode = Enter Your registration code here
::CONFIG stats = password
::CONFIG content-type = text/html
::CONFIG NonStrictMatch = [non strict match]
::CONFIG StopWords =, Ignored Words : 
::CONFIG SearchType = Combined

::HTMLTOP
<HTML>
<HEAD>
<TITLE>Search results - %Q</TITLE>
</HEAD>
<BODY>
<table width=400 height=40 align=center bgcolor=#C0C0C0>
<form action="%F" method=get><tr><td align=center>
<input type=text name=q size=40 maxlength=64 value="%Q">
<input type=submit value="Search">
<select name=template>
<option value="en">English
<option value="es">Spanish
<option value="ru">Russian
</select>
</td></form></tr></table>
Documents found: %O
   <B>%O</B><font color=gray>%W<B>%P</B></font><br>
<br>
<div align=right>
Sort by: <a href="%A">date</a> | <a href="%L">relevancy</a>
</div>


::HTMLRESULT
<HR>
<UL>
<LI>%N. <a href="%U" target=_new>%T</A> <small>
        <font color=red>%S</font> [Relevancy: %R]</small>
<UL>
<LI>%E
<LI>%D
<LI>%C
<LI><a href="%U" target=_new>%u</A>
</UL>
</UL>


::HTMLNOTFOUND
<P><font color=red>%Q not found</font>


::HTMLBOTTOM
%B
</BODY>
</HTML>
-- end of en.conf ---------------------------------------

4.2.1.4 Поиск по выбранным сайтам

Начиная с версии 1.3 в системе доступна опция поиска по выбранным сайтам. Каждому сайту на стадии индексации назначается порядковый номер, начинающийся с нуля, например:

[job localhost]
[Index]
URL             http://www.mysite.com/
Statistic       Append
CharSet         ByHTTPHeader
MaxFiles        10000
StopWordsFile   stopwords.txt
Exclude         search/,mail/,.zip,.gif,.jpg
[Index]
URL             http://www.second.com/
Statistic       Append
CharSet         ByHTTPHeader
[Index]
URL             http://www.test.com/
Statistic       Append
CharSet         ByHTTPHeader

Номера сайтов назначаются следующим образом:

0 - http://www.mysite.com/
1 - http://www.second.com/
2 - http://www.test.com/

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

[job addon]
[Index]
URL             http://www.newsite.com/
Statistic       Append
CharSet         ByHTTPHeader
MaxFiles        10000
StopWordsFile   stopwords.txt
Exclude         search/,mail/,.zip,.gif,.jpg

сайту http://www.newsite.com/ также присваивается номер "0":

0 - http://www.mysite.com/
0 - http://www.newsite.com/
1 - http://www.second.com/
2 - http://www.test.com/

Для реализации поиска по выбранным сайтам следует использовать параметр "d"; если данный параметр не указан (по умолчанию), поиск будет произведен по всем сайтам.

Пример 3:

-- cnsearch.conf ----------------------------------------
::CONFIG regcode = Enter Your registration code here
::CONFIG stats = password

::HTMLTOP
<HTML>
<HEAD>
<TITLE>Search results - %Q</TITLE>
</HEAD>
<BODY>
<table width=400 height=40 align=center bgcolor=#C0C0C0>
<form action="%F" method=get><tr><td align=center>
<input type=text name=q size=40 maxlength=64 value="%Q">
<input type=submit value="Search">
<br>
<select name=d>
<option value="0">www.mysite.com, www.newsite.com
<option value="1">www.second.com
<option value="2">www.test.com
</select>
</td></form></tr></table>
Documents found: %O
   <B>%O</B><font color=gray>%W<B>%P</B></font><br>
<br>
<div align=right>
Sort by: <a href="%A">date</a> | <a href="%L">relevancy</a>
</div>


::HTMLRESULT
<HR>
<UL>
<LI>%N. <a href="%U" target=_new>%T</A> <small>
        <font color=red>%S</font> [Relevancy: %R]</small>
<UL>
<LI>%E
<LI>%D
<LI>%C
<LI><a href="%U" target=_new>%u</A>
</UL>
</UL>


::HTMLNOTFOUND
<P><font color=red>%Q not found</font>


::HTMLBOTTOM
%B
</BODY>
</HTML>
-- end cnsearch.conf ------------------------------------

4.2.1.5 Группировка результатов поиска по сайтам

Часто, при поиске по большому количеству сайтов результаты поиска могут засорять страницы только одного сайта. Например, при поисковой фразе "новости" будут найдены все страницы новостного сайта, заканчивающиеся на " // Местные новости", а результаты с других сайтов будут сдвинуты на сотни, а иногда на тысячи позиций.

Для того, чтобы такой ситуации не возникало, крупные поисковые системы, такие как Google, Yandex и Rambler, выводят только по одному результату с каждого сайта. С версии 1.5 такая возможность появилась в CNSearch

Для того чтобы включить группировку по сайтам, нужно добавить скрытое поле group в форму поискового запроса:

-- cnsearch.conf ----------------------------------------
....
<BODY>
<table width=400 height=40 align=center bgcolor=#C0C0C0>
<form action="%F" method=get><tr><td align=center>
<input type="text" name="q" size="40" maxlength="64" value="%Q">
<input type="hidden" name="group" value="1">
<input type="submit" value="Search">
</td></form></tr></table>
....
-- end cnsearch.conf ------------------------------------

Для того чтобы дать пользователям произвести более подробный поиск по одному сайту из результатов поиска, обычно используют ссылку "еще с сайта". Реализовать ее можно с помощью специального символа %I:

-- cnsearch.conf ----------------------------------------
....
::HTMLRESULT
....
<LI>%N. <a href="%U" target=_new>%T</A> <small>
        <font color=red>%S</font> [Relevancy: %R]</small>
        [ <a href="%F?d=%I&q=%G">еще с сайта</a> ]
<UL>
....
-- end cnsearch.conf ------------------------------------

Назад | Оглавление | Далее