evoSearch

    Установка

    Самый просто способ установки - использовать модуль Extras в админке.

    Необходимые компоненты для работы:

    • DocLister

    Важно

    • До первого запуска сниппета на фронтэнде сайта необходимо провести индексацию.
    • Cоздание необходимых полей content_with_tv и content_with_tv_index, а также нужных индексов производится автоматически при первом запуске индексации.

    Первый запуск и переиндексация

    1. При первом запуске или переиндексации выставить параметры в плагине:
      • Переиндексировать все = 1
      • Первая строка переиндексации = 0 *
      • Строк за сеанс индексировать = 10 000 *
    2. открыть и пересохранить любой документ - необходимо для вызова события onDocFormSave.
    3. Установить Переиндексировать все = 0, Строк за сеанс индексировать = 1

    * Первая строка и количество строк за сеанс устанавливать в зависимости от возможностей хостинга. Например, первая строка 0 и строк за сеанс 10 000 проиндексирует в БД строки с 0 в количестве 10 000 штук.

    Пример вызова

    Вывод результатов [!evoSearch? &tpl=evoSearch!]

    Чанк evoSearch создается при установке дополнения.

    Расширенный пример

    Форма

        <form action="2.html" method="get"><input name="search" type="text"><button type="submit"></button></form>

    Обработка результатов на странице id=2

        [!evoSearch?
        &display=`16`
        &paginate=`pages`
        &statTpl= `<div class="srch_res_info">По запросу <b>[+stat_request+]</b> найдено <b>[+stat_total+]</b> документов.</div>`
        &noResult=`<div class="srch_res_info">По запросу <u>[+stat_request+]</u> ничего не найдено. Смягчите условия поиска</div>`
        &ownerTPL=`@CODE: <div class="srch_res">[+dl.wrap+] </div>`
        &tpl=`@CODE: 
            <div class="srch_res_one">
                <a href="[+url+]">[+title+]</a>
                <div class="srch_ext">[+extract+]</div>
            </div>
        `
        &TplNextP=`` &TplPrevP=`` &TplPage=`@CODE: <li><a href="[+link+]">[+num+]</a></li>` &TplCurrentPage=`@CODE: <li class="active"><a href="[+link+]">[+num+]</a></li>`&TplWrapPaginate=`@CODE: <div class="pagination"><ul>[+wrap+]</ul></div>`                            
        !]
        [+pages+]
    

    Состав пакета:

    • плагин evoSearch - используется для индексирования результатов поиска. Индексируются поля pagetitle, longtitle ,description, introtext, content и указанные TV-параметры. Требуемые TV указываются в конфигруации плагина через админку в поле Имена TV для поиска через запятую. При использовании для построения списка возможных значений TV сниппета multiParams (из комплекта eFilter) индексируются не id ресурсов, а их заголовки.
    • сниппет evoSearch - используется для вывода результатов поиска. Может работать в двух режимах: использовать для вывода результатов DocLister или возвращать список id ресурсов (режим выбирается параметром &action='ids'). В последнем случае генерируется и возвращается список id ресурсов, подходящих под условия поиска. Эти данные могут использоваться в любом другом сниппете через плейсхолдер evoSearchIDs, который содержим массив id из результатов поиска.

    ПАРАМЕТРЫ ПЛАГИНА

    Для плагина требуется событие onDocFormSave.

    Параметры:

    • &offset=Первая строка переиндексации;text;0
    • &rowsperonce=Строк за сеанс индексировать;text;1
    • &reindex=Переиндексировать все;text;0
    • &excludeTmpls=Исключить шаблоны;text;
    • &excludeIDs=Исключить ID ресурсов;text;
    • &TvNames=Имена TV для поиска;text;
    • &unpublished=Индексировать неопубликованные;text;0
    • &deleted=Индексировать удаленные;text;0
    • &dicts=Использовать словари;text;rus,eng

    ПАРАМЕТРЫ СНИППЕТА

    Сниппет evoSearchявляется оберткой для DocLister, поэтому то он принимает все параметры DocLister.

    • &action = ids - возвращает список найденных ids, которые можно подставить в другой сниппет. По-умолчанию - отрабатывает полностью с выводом результатов

    • &noResult - шаблон строки, которая выводится при отсутствии результата поиска. Значение по-умолчанию:

      &noResult = "По запросу <u>[+stat_request+]</u> ничего не найдено. Смягчите условия поиска")
    • &extract - отключить экстрактор. Формирует нужную часть текста с подсветкой из результатов поиска. Плейсхолдер [+extract+] в чанке вывода результатов DocLister. Значение по-умолчанию:

      &extract = 1
    • &maxlength - максимальная длина извлекаемой части текста в результатах поиска. Значение по-умолчанию:

      &maxlength = 350
    • &show_stat - показ статистики. Значение по-умолчанию:

      &show_stat = 1
    • &statTpl - шаблон показа статистики. Значение по-умолчанию:

      <div class="evoSearch_info">По запросу <b>[+stat_request+]</b> найдено всего <b>[+stat_total+]</b>. Показано <b>[+stat_display+]</b>, c [+stat_from+] по [+stat_to+]</div>

      где

      • [+stat_request+] - запрос из строки $_GET['search']
      • [+stat_total+] - количество найденных документов
      • [+stat_display+] - показано на текущей странице с [+stat_from+] по [+stat_to+]
    • &rel - релевантность поиска.по умолчанию 0.01, Чем выше цифра - тем более релевантные результаты и тем их меньше. Значение по-умолчанию:

      &rel = 0.01
    • &search_field - поле $_GET для запроса. По-умолчанию запрос ищется в $_GET['search'].

    • &minlength - минимальная длина слова, которое будет участвовать в полнотекстовом поиске. Значение по-умолчанию:

      &minlength = 2

    подсветка найденных слов в pagetitle и extract в результатах поиска осуществляется тегом - т.е. возможна ее стилизация через css-файлы

    Дополнительная информация.

    • Подсветка найденных слов в pagetitle и extract в результатах поиска осуществляется тегом <span class="evoSearch_highlight">. Возможна ее стилизация через css-файлы.
    • Т.к. при полнотекстовом поиске MySQL без дополнительных настроект обрабатываются только слова не короче 4 символов. Для улучшения результатов поиска используется дополнительный поиск средствами фильтров DocLister, что улучшает результаты. Особенно при их отстутствии в результате обычного поиска.
    • Совместим с DocLister версии 1.4.1 и ниже, 1.4.8 и выше.
    • В версиях 1.4.5, 1.4.6, 1.4.7 встречается некорректный сброс строки $_GET, из-за чего некорректно срабатывает обработка пустых результатов.