<?php
/*---------------------------------------------------------------------------
 * @Project: Alto CMS
 * @Project URI: http://altocms.com
 * @Description: Advanced Community Engine
 * @Copyright: Alto CMS Team
 * @License: GNU GPL v2 & MIT
 *----------------------------------------------------------------------------
 */

/***
 * Основа шаблона для определения слов
 * Слово - это набор букв, цифр, знаков "подчеркивание" и "минус"
 *
 * Шаблон служит для фильтрации "небукв" на этапе подготовки к поиску
 * и для выделения слов в "подсветке"
 *
 * Для поддержки многоязычности в этом шаблоне заданы символы алфавитов
 * практически всех языков народов стран Европы и бывш. СССР, плюс
 * подчеркивание, дефис и слеш.
 * При желании можно добавить любой другой - китайский, хинди, суахили и т.д.
 * Для этого добавляется (или заменяется) диапазон символов в кодах Unicode.
 */
$config['char_pattern'] = '[\d\w\x{00c0}-\x{024f}\x{0386}-\x{052f}\x{0530}-\x{058F}_\-\/]';

/***
 * Поиск строгий/нестрогий
 * false - нестрогий поиск, т.е. запрос "дом" вернет "дома", "задом" и т.д.
 * true  - строгий поиск, т.е. запрос "дом" будет игнорировать "дома" и "задом",
 *         но запросу "дом*" будут соответствовать "дома", "домовой",
 *         а запросу "*дом" будут соответствовать "задом", "передом",
 *         а запросу "*дом*" будет соответствовать "рандомный"
 */
$config['strict_search'] = true;

/***
 * Минимальная и максимальная длина искомого выражения.
 * Не рекомендуется минимальное значение задавать меньше 3
 * Не рекомендуется максимальное значение задавать больше 255
 */
$config['min_length_req'] = 3;
$config['max_length_req'] = 255;

/***
 * Число результатов поиска на одну страницу
 */
$config['items_per_page'] = 20;

/***
 * Режим вывода результатов поиска
 *   'short'    - Краткий текст
 *   'full'     - Полный текст
 *   'snippet'  - Сниппет
 */
$config['out_mode'] = 'snippet';

/***
 * Длина сниппета. Реальный размер может быть и больше,
 * учитывая, что будет выравнивание до границ слова пв начале и конце сниппета
 */
$config['snippet']['length'] = 200;

/***
 * Максимальная длина сниппета. Если сниппет с учетом выравнивания по границам слов
 * становится больше этого параметра, то он будет обрезаться принудительно
 * Если = 0, то игнорируется
 */
$config['snippet']['max_length'] = 260;

/***
 * Строки, которые будут вставляться в тексте до и после искомых строк,
 * например, чтобы "подсветить" найденный текст
 */
$config['snippet']['before_match'] = '<span class="searched-item">';
$config['snippet']['after_match'] = '</span>';

/***
 * Строки, которые будут вставляться в тексте до и после фрагмента с искомыми строками,
 * например, чтобы разбить их на параграфы
 */
$config['snippet']['before_fragment'] = '<p>';
$config['snippet']['after_fragment'] = '</p>';

/***
 * Максимальное число фрагментов, которое будет показано в сниппете
 * Если = 0, то игнорируется
 */
$config['snippet']['max_fragments'] = 5;

/***
 * Пропускать теги
 * Если задано, то в тегах поиск все равно будет осуществляться,
 * но в результатах поиска все теги будут удаляться. Поэтому
 * если искомое слово встречается только в теге, то топик будет
 * выведен, но слово подсвечено не будет
 */
$config['skip_all_tags'] = true;

/***
 * Протоколирование запросов поиска на сайте.
 *   true - протоколирование включено
 *   true - протоколирование включено
 */
$config['logs']['enable'] = false;

/***
 * Имя файла для протоколирования запросов. Если протоколирование включено,
 * то файл протокола будет сохраняться в папке logs Вашего сайта
 */
$config['logs']['file'] = 'search.log';

/***
 * Максимальный размер лог-файла; если = 0, то ротация по дате
 *
 * Например,
 *   $config['logs.max_size'] = 1024*1024*1000; // Размер файла 1 Гб
 *   $config['logs.max_size'] = '1GB';          // И это размер 1 Гб
 */
$config['logs']['max_size'] = 0;

/***
 * Максимальное число лог-файлов
 *
 * Например, если имя файла задано mysearch.log, то старые файлы
 * будут сохраняться под именами
 *   mysearch1.log
 *   mysearch2.log
 *   mysearch3.log
 *   mysearch4.log
 *   ... и т.д.
 */
$config['logs']['max_files'] = 10;

/***
 * Настройка релевантности поиска
 */
// Чем выше это значение, тем лучше релевантность, когда поиск выполняется по нескольким словам,
// но это создает дополнительную нагрузку на базу данных
$config['rate']['limit'] = 5;

// весовой коэффициент для каждого найденного слова
$config['rate']['words'] = 1.0;

// дополнительный коэффициент, если слово найдено в заголовке
$config['rate']['title'] = 1.2;

// дополнительный коэффициент, если найдена вся искомая фраза
$config['rate']['phrase'] = 1.5;

/***
 * Ограничения против флуда
 */
$config['limit']['queries']  = 10;   // максимум 10 запросов...
$config['limit']['period']   = 180;  // ... в 180 секунд (0 - без ограничений)
$config['limit']['interval'] = 10;   // минимальный интервал между запросами в сек.
$config['limit']['check_ip'] = true; // применять ограничения к каждому IP (иначе - к сессии)

$config['limit']['max_words'] = 3;   // максимальное число слов в запросе

/***
 * Выводить в результатах поиска все топики (false)
 * или только из списка доступных пользователю блогов (true)
 */
$config['accessible'] = FALSE;

return $config;

// EOF