## Краткое руководство по работе с модулем "Поиск по сайту"

Данный модуль предназначен для внедрения внутренней системы поиска на сайтах, работающих под управлением CMS на ядре WebDirector®.

### 1. Добавление поиска на сайт

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

- Установить на сайте форму поиска
- Создать страницу для вывода результатов поска
- Переопубликовать сайт
- Произвести индексацию сайта

#### Установить на сайте форму поиска

Выберите место в шаблоне или на странице, где должна появиться форма поиска. В редакторе текста страницы, области шаблона или прямого редактирования кода шаблона поставьте курсор на соответствующее место в коде и нажмите кнопку "Краткая форма поиска по сайту" или "Расширенная форма поиска по сайту" (если форма будет появляться на каждой странице сайта, то наверное лучше краткая, а на странице с результатами поиска - расширенная). Затем сохраните код.

#### Создать страницу для вывода результатов поска

Создайте страницу (озаглавьте ее, допустим, "Результаты поиска"). В редакторе текста страницы поставьте курсор на то место в коде, где должны выводиться результаты поиска, и нажмите кнопку "Результаты поиска по сайту". Затем сохраните код.
Эту страницу лучше исключить из всех меню, каталогов и карты сайта.

#### Переопубликовать сайт

Перед первой индексацией страниц и для того чтобы на сайте появилась форма поиска и страница результатов поиска, следует полностью переопубликовать сайт. Для этого зайдите в "Управление страницами"-"Инструменты"-"Отметить все страницы как неопубликованные" и нажмите кнопку "Применить". Затем опубликуйте сайт.

#### Произвести индексацию сайта

Зайдите в модуль "Поиск по сайту" и нажмите позицию "Индексировать" в меню модуля. Дождитесь завершения индексации.

После выполнения этих шагов на вашем сайте должна появиться работающая форма поиска по сайту. Проверьте ее на каких-нибудь простых запросах.

### 2. Поиск на сайте

Для поиска на сайте посетитель должен ввести поисковый запрос в форму поиска и нажать кнопку "искать" (по умолчанию надпись на кнопке », как изменить - см. следующий раздел). После этого откроется окно с результатами поиска.
По умолчанию при запросе из краткой формы система будет искать только такие страницы, которые содержат все введенные посетителем слова (за исключением слишком коротких или запрещенных к поиску администрацией сайта) и слова, похожие на них. Для того чтобы дать посетителю изменить это поведение, ему можно обеспечить доступ к расширенной форме поиска. Для того чтобы изменить поведение по умолчанию, существуют соответствующие настройки (см. раздел 7. "Настройки").
Поиск проигнорирует слишком короткие слова (по умолчанию - меньше 4-х символов, как изменить - см. раздел 7. "Настройки").
При запросе, состоящем из нескольких слов, система найдет страницы, содержащие все эти слова, и разобьет их на две группы согласно настройке "Допустимый диапазон разброса искомых слов на странице" (см. раздел 7. "Настройки"). В первую войдут страницы, в которых слова укладываются в этот диапазон, во вторую - в которых найдены все слова, но распределены по странице так, что нет ни одной группы из всех слов, сосредоточенной в данном диапазоне.
Если запрос сделан без включенной опции "искать только все слова", в результаты поиска при многословном запросе будет включена третья группа - страницы, содержащие только некоторые из слов запроса.

### 3. Как настроить вид формы поиска

Краткая форма поиска по сайту представляет собой текстовое поле с кнопкой. Для изменения текста кнопки используйте настройку "Поиск по сайту"-"Настройки"-"Формы"-"Надпись на кнопке краткой формы".
Для отображения текстового поля и кнопки система использует правила стилей `osnsmalltxt` и `osnsmallbutt` соответственно. Также текстовому полю прописан идентификатор `ssrchrqstr`, а кнопке - `ssrchrqbutt`. Поэтому управлять внешним видом формы поиска можно, создавая (исправляя) соответствующие записи в карточке "Прямое редактирование стилей" соответствующего шаблона (классы `osnsmalltxt` и `osnsmallbutt` определяют внешний вид элементов всех форм, созданных системой; идентификаторы же `ssrchrqstr` и `ssrchrqbutt` являются уникальными для формы поиска по сайту).
Расширенная форма поиска по сайту представляет собой текстовое поле с кнопкой и двумя "чекбоксами" под ними. Для изменения текста кнопки используйте настройку "Поиск по сайту"-"Настройки"-"Формы"-"Надпись на кнопке расширенной формы".
Для отображения текстового поля и кнопки система использует правила стилей `osnsmalltxt` и `osnsmallbutt` соответственно. Для отображения текста "чекбоксов" - правило стилей `ssrchchktxt`. Также текстовому полю прописан идентификатор `ssrchrqstr2`, а кнопке - `ssrchrqbutt2`. Поэтому управлять внешним видом формы поиска можно, создавая (исправляя) соответствующие записи в карточке "Прямое редактирование стилей" соответствующего шаблона .

### 4. Как задать формат вывода результатов поиска

• Для изменения внешнего вида вывода расширенной формы поиска и результатов поиска: просмотрите HTML-код страницы с результатами поиска; определите правила стилей и идентификаторы, прописываемые системой различным элементам этого вывода; вручную внесите соответствующие изменения в стили того шаблона, на основе которого публикуется страница с результатами поиска.
• Ссылки на найденные страницы открываются в новом окне. Это поведение нельзя изменить в текущей версии

### 5. Как ускорить индексацию

По умолчанию при индексации система анализирует весь текст опубликованных страниц. Процесс индексации можно значительно ускорить, если указать системе не индексировать текст страниц, а ограничиться только лишь разбором полей name, title, description и keywords (значения этих полей берутся системой из внутреннего хранилища и не требуют обращения к сайту, плюс к этому сам размер обрабатываемого текста получается значительно меньше, что в сумме дает очень большой выигрыш в скорости индексации).
Для этого надо выставить определенные настройки:
"Поиск по сайту"-"Настройки"-"Релевантность"
Справа на все позиции 'веса', кроме веса названия страницы и областей title, keywords и description, выставьте значение 0 (ноль). После этого индесация не будет анализировать эти области, и будет происходить на порядок быстрее.
Кроме того, вы сможете более точно контролировать соответствие страниц запрсам (то есть их релевантность), изменяя только эти поля страниц (в принципе, достаточно оставить только поле keywords, невидимое посетителю сайта).
Однако такой подход, хотя и позволит более однозначно управлять потоком посетителей сайта, имеет и недостатки:
• резко снизится размер индекса и соответственно количество находимых посетителями страниц
• придется ответственно подойти к заполнению областей, разрешенных к индексации, что потребует значительного времени
Существует еще одна настройка - "Поиск по сайту"-"Настройки"-"Индексация страниц"-"Скорость индексации".
По умолчанию ее значение равно 1 (единице). Увеличение значения этой опции приведет к некоторому ускорению процесса индексации, но за счет увеличения нагрузки на сервер. Поэтому в случае виртуального хостинга строго рекомендуется оставить значение настройки равным 1 (иначе индексация может просто не завершиться, плюс к этому может возникнуть конфликт с хостинг-провайдером по поводу перегрузки сервера).
Если же у вас выделенный сервер, то можете поэкспериментировать с этой настройкой, изменяя ее от 1 до 100.

### 6. Статистика

Когда посетитель вводит какой-либо запрос в форме писка по сайту и нажимает "искать", система помещает этот запрос в статистику. Один и тот же запрос от одного и того же посетителя в рамках одной сессии считается только один раз (то есть если кто-то искал "белого кролика", затем бродил по сайту, а потом опять искал "белого кролика", то второй запрос статистикой учтен не будет; если же во второй раз посетитель искал "кролика белого" - то будет).
Посмотреть, что и как часто ищут посетители на вашем сайте, можно в разделе "Поиск по сайту"-"Статистика". Статистика группируется понедельно.
Статистика за определенный период представляет собой список запросов, который можно отсортировать по частоте запроса или по алфавиту.
По клику на текст запроса система откроет страницу результатов поиска с текущими результатами по данному запросу. По каждой найденной странице будет доступна опция "vectors legend", содержащая распределение найденных слов запроса по областям страницы. Используйте этот инструмент для анализа запросов и соответствующей корректировки наполнения страниц сайта.
Страница поиска, открытая по клику на текст запроса из страницы статистики, сама в статистике не участвует.

### 7. Настройки

Прочие настройки модуля ("Поиск по сайту"-"Настройки"):

1. Индексация страниц
   1. не индексировать страницы, для которых установлен флаг "непоисковая ссылка в меню" и не индексировать страницы, для которых не установлен флаг "включать страницу в карту сайта" - эти опции позволяют в некоторой степени контролировать список индексируемых страниц, то есть задавать, какие страницы не индексировать. Как правило, по логике построения сайта действительно достаточно совместить включение в список индексации с одним из двух названных флагов. По умолчанию обе опции выставлены в "Да".
      Независимо от значения данных опций система не будет индексировать страницы, для которых на момент индексации снята видимость (флаг "страница доступна посетителям сайта")
2. Индексация слов
   1. индексировать только слова длиной не менее - можно задать минимальную длину включаемых в индекс слов; слова, более короткие, чем заданное значение, будут игнорироваться и при индексации, и при поиске.
      При любом значении этой настройки система будет игнорировать слова длиной менее 3-х символов.
   2. эти слова индексировать в любом случае - впишите сюда слова, которые короче, чем задано в предыдущей настройке, но которые тем не менее следует индексировать и искать.
      Как правило, это может понадобиться для каких-то аббревиатур или названий моделей.
      Слова вводите, разделяя их пробелом, переносом строки, запятой или точкой с запятой. Например:
      `йод, ель, еда
      xml, rss; mx, xp; XXL
      ОБЖ, ЦРУ`
   3. эти слова не индексировать в любом случае - список слов, проходящих по длине, но которые тем не менее индексировать не следует. Например:
      `были, будем, будут
      давно, потом; когда, если, зачем`
      Вы можете проанализировать индекс сайта ("Поиск по сайту"-"Индексы") и занести оттуда лишние слова в этот список. Это несколько ускорит процесс поиска для посетителей сайта, но несколько замедлит сам процесс индексации.
3. Релевантность
   В процессе индексации сайта система назначает каждой странице некоторый 'вес' относительно каждого встречающегося на ней слова. Если при поиске по какому-либо слову будет найдено несколько страниц, они будут показаны посетителю в порядке уменьшения веса.
   Как система вычисляет вес страницы относительно искомого слова ? Простым подсчетом количества вхождения слова в текст данной страницы.
   При этом система применяет некоторые коэффициенты, зависящие от области, в которой встречается слово. Например, по умолчанию коэффициент заголовка выше, чем коэффициент простого текста. Поэтому, если две страницы содержат слово "кролик", но первая в заголовке, а вторая просто в тексте, то при индексации вес первой страницы относительно слова "кролик" будет больше, и при поиске по запрсу "кролик", она появится выше в выдаче результатов, чем вторая.
   Вы можете самостоятельно задавать эти коэффициенты для областей. Система при индексации различает следующие области страницы и соответственно позволяет задавать следующие настройки:
   1. 'вес' слова в названии страницы - для слов, найденных в содержимом поля название (name) страницы
   2. 'вес' слова в области "title" - для слов, найденных в содержимом мета-тега title
   3. 'вес' слова в области "keywords" - для слов, найденных в содержимом мета-тега keywords
   4. 'вес' слова в области "заголовок H1" - для слов, найденных в содержимом тега H1
   5. 'вес' слова в областях "заголовок H2, H3, H4" - для слов, найденных в содержимом тегов H2, H3, H4
   6. 'вес' слова в области "description" - для слов, найденных в содержимом мета-тега description
   7. 'вес' слова в "теле" страницы - для всех остальных слов
   При этом система вовсе не индексирует текст javascript-скриптов, текст внутри тега noindex, а также текст элементов навигации, сформированных самой системой (меню, навигация по рубрике, путь до страницы и т.д.).
   Прочие настройки, влияющие на релевантность:
   1. допустимый диапазон разброса искомых слов на странице - при многословном запросе все найденные страницы, в которых присутствуют все значимые слова запроса, будут разбиты на две группы. В первую группу войдут такие страницы, в которых есть область длиной не более N слов, содержащая все слова запроса. Во сторую - страницы, в которых такая область отсутствует, хотя и найдены все слова.
      Значение N определяется системой как значение данной настройки плюс количество уникальных значимых слов в запросе.
   2. по умолчанию искать только страницы, содержащие все слова - как будет вестись поиск при подаче запроса из краткой формы и как будет по умолчанию выставлена соответствующая "галка" расширенной формы.
   3. по умолчанию искать только точные совпадения слов - как будет вестись поиск при подаче запроса из краткой формы и как будет по умолчанию выставлена соответствующая "галка" расширенной формы.