Описание основных компонентов плагина
Плагин WP Fast Total Search (WPFTS) состоит из четырех основных компонентов:
-
Индексатор (Indexer): Отвечает за создание и обновление поискового индекса. Он извлекает данные из постов, страниц, произвольных типов постов и других источников, обрабатывает их согласно правилам индексации и сохраняет в базе данных. Индексатор работает в фоновом режиме и может быть запущен вручную или по расписанию. Ключевой класс:
WPFTS_Index
. -
Поисковый движок (Search Engine): Отвечает за обработку поисковых запросов и нахождение релевантных результатов. Он использует данные из поискового индекса для быстрого поиска и рассчитывает релевантность результатов на основании весов кластеров и других параметров. Ключевой класс:
WPFTS_Search
. -
Виджет (Widget): Виджет
WPFTS :: Live Search
предоставляет пользовательский интерфейс для поиска на фронтенде сайта. Он поддерживает автодополнение и позволяет пользователям быстро находить нужную информацию. Ключевой класс:WPFTS_Custom_Widget
. Также существует шорткод[wpfts_widget]
, который позволяет вставлять виджет в любое место на странице. -
Генератор Smart Excerpts: Этот компонент отвечает за создание “умных отрывков” (Smart Excerpts) — интерактивных фрагментов текста, которые отображаются в результатах поиска. Smart Excerpts содержат найденные ключевые слова в контексте и позволяют пользователям быстро оценить релевантность результатов. Они также предоставляют более удобную навигацию по найденным документам. Ключевой класс:
WPFTS_Result_Item
.
Индексатор (Indexer)
Индексатор WPFTS — это критически важный компонент, который отвечает за создание и обновление поискового индекса. Он выполняет следующие действия:
-
Извлечение данных: Индексатор извлекает данные из различных источников, таких как посты, страницы, произвольные типы постов, мета-поля, таксономии и т.д.
-
Обработка данных: Извлеченные данные обрабатываются согласно правилам индексации. Это может включать в себя удаление HTML-тегов, преобразование специальных символов, приведение текста к нижнему регистру и другие преобразования.
-
Разделение на слова: Обработанный текст разделяется на отдельные слова (токены).
-
Создание индекса: Индексатор создает индекс, который содержит информацию о том, в каких постах и в каких кластерах встречаются какие слова.
-
Сохранение индекса: Созданный индекс сохраняется в базе данных в оптимизированном формате для быстрого поиска.
Поисковый движок (Search Engine)
Поисковый движок WPFTS отвечает за обработку поисковых запросов и нахождение релевантных результатов. Он выполняет следующие действия:
-
Анализ запроса: Движок анализирует поисковый запрос, разделяя его на отдельные термины.
-
Поиск в индексе: Движок использует индекс для быстрого нахождения постов, содержащих заданные термины.
-
Расчет релевантности: Для каждого найденного поста рассчитывается релевантность на основании весов кластеров, частоты встречаемости терминов и других параметров.
-
Сортировка результатов: Результаты поиска сортируются по релевантности или другим параметрам, заданным в запросе.
Виджет (Widget)
Виджет WPFTS :: Live Search
предоставляет пользовательский интерфейс для поиска на фронтенде сайта. Он обладает следующими особенностями:
-
Автодополнение: Виджет поддерживает автодополнение поисковых запросов, что помогает пользователям быстрее находить нужную информацию.
-
Настраиваемый внешний вид: Вы можете настраивать внешний вид виджета через CSS.
-
Интеграция с WPFTS: Виджет использует поисковый движок WPFTS для выполнения запросов.
-
Поддержка шорткода: Виджет также доступен в виде шорткода
[wpfts_widget]
, который позволяет вставлять его в любое место на странице.
Генератор Smart Excerpts
Генератор Smart Excerpts выполняет следующие действия:
-
Извлечение данных: Компонент извлекает проиндексированные данные поста, включая содержимое, метаданные и другие данные, определенные правилами индексации. Это делается с помощью метода
WPFTS_Core::getPostChunks()
. -
Выбор релевантных предложений: На основании поискового запроса генератор выбирает наиболее релевантные предложения из текста поста. Для этого используется класс
WPFTS_TokenCollector
и его методыGetMostPowerful()
иGetOrderedByLessDistance()
. -
Формирование отрывка: Выбранные предложения объединяются в отрывок, при этом найденные слова и фразы выделяются с помощью тега
<b>
. -
Добавление ссылок и стилей: К каждому предложению и/или слову могут быть добавлены ссылки, ведущие на страницу поста с выделенным фрагментом. Стили предложений определяются в настройках плагина и могут быть изменены с помощью фильтра
wpfts_get_sentence_styles
. HTML код генерируется методомWPFTS_Result_Item::applySentenceStyles()
. -
Обработка ненайденных слов: Если не все слова из поискового запроса были найдены в тексте поста, они могут быть отображены в Smart Excerpt с перечеркиванием, чтобы пользователь видел, какие слова не были учтены при поиске.
-
Добавление метаданных: В Smart Excerpt может быть добавлена дополнительная информация, такая как релевантность, размер файла (для вложений) и ссылка на скачивание.
-
Фильтрация и вывод: Перед выводом на страницу результатов поиска Smart Excerpt может быть модифицирован с помощью фильтров
wpfts_se_data
иwpfts_se_output
.
Интерактивность и навигация
Smart Excerpts в WPFTS интерактивны. При клике на выделенное слово или фразу в отрывке, пользователь переходит на страницу поста, где WPFTS выделяет соответствующий фрагмент в тексте и прокручивает страницу до него. Это обеспечивает более удобную навигацию по результатам поиска и помогает пользователям быстрее находить нужную информацию в тексте поста. Эта функциональность реализована с помощью JavaScript.
Взаимодействие этих компонентов обеспечивает быстрый, релевантный и удобный поиск на вашем сайте WordPress.