Плагин «Поиск по топикам, комментариям и людям (Simple Search and Auto Completer)», стал ещё лучше

поиск в LiveStreet CMSВышло обновление хорошего поиска с простой релевантностью по топикам, комментариям и пользователям, автозаполнение (автокомплитер) по тегам для формы поиска.

НОВОЕ

  • Исправлен баг с русской буквой ё и украинской ґ
  • Обновлен модуль кеширования, который теперь не вызывает ошибку уровня e_notice в php 5.4
  • Улучшена релевантность поиска в топиках: теперь дополнительно поиск осуществляется в заголовках + тексте одновременно, потом заголовках, после — в текстах топиков, последовательно для точного и неточного совпадения поискового запроса
  • Корректная работа с новой версией супер спойлера
  • В выводе результатов поиска не режутся новые строки
  • Рефакторинг кода и исправление незначительных багов


ОПИСАНИЕ

Хороший поиск с простой релевантностью (на основе регулярных выражений в запросах к БД) по топикам (заголовок, текст), комментам и пользователям (логин, имя, страна, город и поле «о себе»), автозаполнение (автокомплитер) по тегам, логинам для формы поиска. Не требует установки других плагинов для своей работы. Альтернатива сфинксу.

Преимущества перед поиском aceMySearch:
  • поддержка украинских символов і, ї, є, ґ в поиске прямо из коробки, русского ё
  • плагин является standalone — т.е. для его работы не нужны другие плагины (как, например, для работы плагина aceMySearch нужна админка)
  • улучшенный алгоритм релевантности при поиске (см. ниже)
  • улучшенное восстановление кодировки если та по пути до сервера была «повреждена» (ввели в строке старого браузера или «выпал» последний символ юникода кириллического символа)
  • по непроверенным данным (общепринятому мнению) используемые запросы (INNER JOIN) являются быстрее тех, на которых построен плагин aceMySearch (LEFT JOIN), итого: прирост в скорости поиска.
  • плагин может производить поиск по данным профилей пользователей.

Релевантность выдачи:
Поиск использует выдачу на основе точного совпадения с искомым словом, а потом уже похожих слов и строит на основе этого выдачу, т.е. в выдачу сначала попадают объекты в которых найдено точное совпадение с запросом, потом — похожие. Плагин выполняет поиск по соответствию одного из слов запроса в тексте (ИЛИ).

Наибольший приоритет имеет точное совпадение поискового запроса в заголовке + тексте топика — если в обоих полях найдено точное совпадение — делаем вес релевантности самым большим, потом точный поиск осуществляется по заголовку топика, после — точное совпадение плагин ищет в тексте. Потом производится поиск на не точное совпадение снова в заголовке + тексте топика, потом в заголовке топика и затем в тексте. После этого идет сортировка по рейтингу, а после уже по времени публикации (на самом деле по ИД, но ИД отображает «дальность» публикации т.к. автоматически инкрементируется), самые старые объекты будут в конце поисковой выдачи.

Рассмотрим запрос на украинском языке "їжа kiss": плагин выведет первым топик в котором есть слово kiss с рейтингом +2, потом топик о еде ("їжа") с нулевым рейтингом и потом топик о ежиках ("їжак", "їжаки" и т.п.) тоже с нулевым рейтингом, причем результаты поиска будут определены по группам точное/не точное совпадение в заголовке/тексте.

В плагин включен автокомплитер по тегам для поиска, который раньше был выполнен в виде отдельного плагина.

В плагин добавлена возможность поиска по людям:
Поиск выполняется по логину, имени, стране, городу и поле «о себе». Релевантность при поиске пользователей не используется, на форме есть опция "точный/не точный поиск", которая задает алгоритм поиска.

При выводе результаты поиска выводятся в порядке релевантности: сначала точные результаты, потом похожие. Каждая группа результатов подписана и визуально отделена (точное совпадение в заголовке + тексте, заголовке, тексте и в таком же порядке для неточного совпадения).

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

В конфиге доступны параметры:

— Минимальная длина поискового запроса (всего)
— Максимальная длина поискового запроса (всего)
— Минимальная длина слова в запросе
— Максимальная длина слова в запросе
— Вырезать ли все теги из поискового запроса, иначе — обработать стандартным парсером ЛС
— Количество результатов поиска на страницу
— Включать ли автозаполнение (автокомплитер) по тегам для формы поиска
— Включить поиск по топикам
— Включить поиск по комментариям
— Включить поиск по людям

Секция проверки запроса:
— Символы, которые считаются валидными. Все остальные вырежет парсер. Для добавления других языков сюда нужно будет внести набор символов (регеспа)

Секция выделения результатов поиска в тексте:
— Граница слова, используется при подсветке результатов поиска (регекспа)
— Выделение искомого слова слева (html строка)
— Выделение искомого слова справа (html строка)

Секция поиска по релевантности информации:
— Точный поиск по умолчанию. Например, поиск по слову «Сон» — будет искать точное совпадение (регистр-независимое), иначе найдет «Сонату» и т.п.
— Разрешить НЕ точный поиск ДОПОЛНИТЕЛЬНО и ТОЛЬКО если включен точный поиск. Результаты будут выдаваться на основе релевантности найденной информации — сначала тексты, где найдено точное совпадение с искомым запросом, потом — тексты, где встречаются и похожие слова

Секция сортировки результатов:
— Как выводить топики
— Как выводить комментарии
— Как выводить людей

СКРИНШОТ

1. Вывод результатов поиска по группам с визуальным выделением:


РЕЗЮМЕ

Плагин доступен в каталоге. Стоимость 10уе.
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.