Описание основных компонентов плагина

Плагин 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 — это критически важный компонент, который отвечает за создание и обновление поискового индекса. Он выполняет следующие действия:

  1. Извлечение данных: Индексатор извлекает данные из различных источников, таких как посты, страницы, произвольные типы постов, мета-поля, таксономии и т.д.

  2. Обработка данных: Извлеченные данные обрабатываются согласно правилам индексации. Это может включать в себя удаление HTML-тегов, преобразование специальных символов, приведение текста к нижнему регистру и другие преобразования.

  3. Разделение на слова: Обработанный текст разделяется на отдельные слова (токены).

  4. Создание индекса: Индексатор создает индекс, который содержит информацию о том, в каких постах и в каких кластерах встречаются какие слова.

  5. Сохранение индекса: Созданный индекс сохраняется в базе данных в оптимизированном формате для быстрого поиска.

Поисковый движок (Search Engine)

Поисковый движок WPFTS отвечает за обработку поисковых запросов и нахождение релевантных результатов. Он выполняет следующие действия:

  1. Анализ запроса: Движок анализирует поисковый запрос, разделяя его на отдельные термины.

  2. Поиск в индексе: Движок использует индекс для быстрого нахождения постов, содержащих заданные термины.

  3. Расчет релевантности: Для каждого найденного поста рассчитывается релевантность на основании весов кластеров, частоты встречаемости терминов и других параметров.

  4. Сортировка результатов: Результаты поиска сортируются по релевантности или другим параметрам, заданным в запросе.

Виджет (Widget)

Виджет WPFTS :: Live Search предоставляет пользовательский интерфейс для поиска на фронтенде сайта. Он обладает следующими особенностями:

  1. Автодополнение: Виджет поддерживает автодополнение поисковых запросов, что помогает пользователям быстрее находить нужную информацию.

  2. Настраиваемый внешний вид: Вы можете настраивать внешний вид виджета через CSS.

  3. Интеграция с WPFTS: Виджет использует поисковый движок WPFTS для выполнения запросов.

  4. Поддержка шорткода: Виджет также доступен в виде шорткода [wpfts_widget], который позволяет вставлять его в любое место на странице.

Генератор Smart Excerpts

Генератор Smart Excerpts выполняет следующие действия:

  1. Извлечение данных: Компонент извлекает проиндексированные данные поста, включая содержимое, метаданные и другие данные, определенные правилами индексации. Это делается с помощью метода WPFTS_Core::getPostChunks().

  2. Выбор релевантных предложений: На основании поискового запроса генератор выбирает наиболее релевантные предложения из текста поста. Для этого используется класс WPFTS_TokenCollector и его методы GetMostPowerful() и GetOrderedByLessDistance().

  3. Формирование отрывка: Выбранные предложения объединяются в отрывок, при этом найденные слова и фразы выделяются с помощью тега <b>.

  4. Добавление ссылок и стилей: К каждому предложению и/или слову могут быть добавлены ссылки, ведущие на страницу поста с выделенным фрагментом. Стили предложений определяются в настройках плагина и могут быть изменены с помощью фильтра wpfts_get_sentence_styles. HTML код генерируется методом WPFTS_Result_Item::applySentenceStyles().

  5. Обработка ненайденных слов: Если не все слова из поискового запроса были найдены в тексте поста, они могут быть отображены в Smart Excerpt с перечеркиванием, чтобы пользователь видел, какие слова не были учтены при поиске.

  6. Добавление метаданных: В Smart Excerpt может быть добавлена дополнительная информация, такая как релевантность, размер файла (для вложений) и ссылка на скачивание.

  7. Фильтрация и вывод: Перед выводом на страницу результатов поиска Smart Excerpt может быть модифицирован с помощью фильтров wpfts_se_data и wpfts_se_output.

Интерактивность и навигация

Smart Excerpts в WPFTS интерактивны. При клике на выделенное слово или фразу в отрывке, пользователь переходит на страницу поста, где WPFTS выделяет соответствующий фрагмент в тексте и прокручивает страницу до него. Это обеспечивает более удобную навигацию по результатам поиска и помогает пользователям быстрее находить нужную информацию в тексте поста. Эта функциональность реализована с помощью JavaScript.

Взаимодействие этих компонентов обеспечивает быстрый, релевантный и удобный поиск на вашем сайте WordPress.