FAQ - Индексация

  1. Как долго происходит индексация?
  2. Что делать, если индексация не завершается или зависает?
  3. Как переиндексировать записи, добавленные скриптом?
  4. Можно ли исключить определенные файлы из индексации?
  5. Как индексировать файлы, загруженные не через Медиатеку?
  6. Почему файлы, загруженные через WP Download Manager, не индексируются?
  7. Можно ли индексировать содержимое файлов, загруженных через RCWD Upload для ACF?
  8. Как индексировать контент шорткодов?
  9. Как индексировать теги записей (post tags)?

Как долго происходит индексация в WPFTS?

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

  • Объем контента: Чем больше записей, страниц, файлов и других элементов на вашем сайте, тем дольше будет происходить индексация.
  • Размер файлов: Индексация больших файлов (например, многостраничных PDF-документов) занимает больше времени, чем индексация маленьких текстовых файлов.
  • Тип контента: Индексация различных типов контента (текст, изображения, видео) может занимать разное время.
  • Производительность сервера: Скорость вашего хостинга непосредственно влияет на скорость индексации. На более мощных серверах индексация будет происходить быстрее.
  • Настройки плагина: Включение дополнительных опций индексации, таких как индексация метаданных или содержимого файлов, может увеличить время индексации.
  • Наличие сторонних плагинов: Некоторые плагины могут замедлять работу WPFTS и увеличивать время индексации.
  • Нагрузка на сервер: Если ваш сервер уже сильно загружен, индексация может занять больше времени.

Оптимизация времени индексации:

Вы можете оптимизировать время индексации, следуя этим советам:

  • Индексируйте только необходимый контент: Отключите индексацию типов записей или файлов, которые не нужно искать.
  • Оптимизируйте размер файлов: Перед загрузкой на сайт уменьшите размер больших файлов, особенно PDF-документов.
  • Используйте мощный хостинг: Если ваш сайт содержит много контента, рекомендуем использовать хостинг с достаточными ресурсами.
  • Выполняйте индексацию в период низкой нагрузки на сервер: Например, ночью или рано утром.
  • Отключите ненужные плагины на время индексации: Это может помочь ускорить процесс.
  • Разбейте индексацию на этапы: Если у вас очень много контента, вы можете индексировать его по частям, выбирая разные типы записей или файлы для каждого этапа.

Мониторинг процесса индексации:

Вы можете следить за процессом индексации в режиме реального времени на странице настроек WPFTS. Там отображается прогресс индексации, оставшееся время и другая информация.

Если индексация занимает слишком много времени или зависает, обратитесь в нашу службу поддержки. Мы поможем вам выявить и устранить причину проблемы.


Что делать, если индексация в WPFTS не завершается или зависает?

Зависание или незавершенная индексация в WPFTS может быть вызвана различными причинами. Вот несколько шагов, которые помогут вам диагностировать и решить проблему:

1. Проверьте логи ошибок:

  • Логи WPFTS: WPFTS ведет собственный лог ошибок, который может содержать полезную информацию о причине зависания. Путь к логу обычно указан на странице настроек плагина.
  • Логи веб-сервера: Проверьте логи ошибок вашего веб-сервера (Apache или Nginx). Там могут быть записи о превышении лимита времени выполнения скрипта, нехватке памяти или других ошибках, которые могут приводить к зависанию индексации.
  • Логи WordPress: Включите режим отладки в WordPress, добавив следующие строки в файл wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

Это будет записывать все ошибки WordPress в файл wp-content/debug.log.

2. Проверьте ресурсы сервера:

  • Лимит памяти: Убедитесь, что вашему PHP-скрипту выделено достаточно памяти. Увеличьте значение memory_limit в файле php.ini или .htaccess. Рекомендуемое значение — не менее 256M.
  • Лимит времени выполнения: Увеличьте значение max_execution_time в файле php.ini или .htaccess. Это позволит скрипту индексации работать дольше, не прерываясь по таймауту.
  • Нагрузка на сервер: Высокая нагрузка на сервер может приводить к зависанию индексации. Попробуйте выполнить индексацию в период низкой нагрузки, например, ночью.

3. Проверьте наличие конфликтов с другими плагинами и темой:

  • Временно отключите другие плагины: Иногда другие плагины могут конфликтовать с WPFTS и приводить к зависанию индексации. Попробуйте поочередно отключать плагины, чтобы выявить источник проблемы.
  • Переключитесь на стандартную тему WordPress: Если вы используете нестандартную тему, попробуйте временно переключиться на стандартную тему (например, Twenty Twenty-Four). Это поможет исключить проблемы совместимости с темой.

4. Проверьте настройки плагина:

  • Оптимизируйте настройки индексации: Отключите индексацию ненужного контента (например, метаданных или комментариев), чтобы сократить время индексации.
  • Разделите индексацию на этапы: Если у вас очень много контента, попробуйте индексировать его по частям, выбирая разные типы записей или файлы для каждого этапа.

5. Обратитесь в службу поддержки:

Если вы выполнили все вышеперечисленные шаги, но проблема не решена, обратитесь в службу поддержки WPFTS. Опишите подробно вашу проблему, укажите версию плагина, версию WordPress, тему и список активных плагинов. Также приложите логи ошибок, если они есть. Мы поможем вам найти и устранить причину зависания индексации.

Не паникуйте, если индексация зависла. В большинстве случаев проблему можно решить, следуя этим рекомендациям.


Как переиндексировать записи, добавленные скриптом в WPFTS?

Если вы добавляете или изменяете записи на вашем сайте WordPress программно, с помощью скрипта, WPFTS не всегда может автоматически обнаружить эти изменения и обновить индекс поиска. В этом случае вам нужно вручную запустить переиндексацию для этих записей.

Использование функции wpfts_post_reindex():

WPFTS предоставляет специальную функцию wpfts_post_reindex(), которая позволяет переиндексировать отдельные записи. Вот как ее использовать:

  1. Получите ID записи: После добавления или изменения записи с помощью скрипта, сохраните ее ID.

  2. Вызовите функцию wpfts_post_reindex(): В вашем скрипте, после сохранения записи, вызовите функцию wpfts_post_reindex(), передав ей ID записи в качестве аргумента:

wpfts_post_reindex( $post_id );

Где $post_id — ID записи, которую нужно переиндексировать.

Пример:

// ... ваш код для добавления или изменения записи ...
 
$post_id = wp_insert_post( $post_data ); // Или другой способ сохранения записи
 
if ( ! is_wp_error( $post_id ) ) {
  // Запись успешно сохранена, переиндексируем ее
  wpfts_post_reindex( $post_id );
}

Альтернативный способ (менее эффективный):

Вы можете использовать функцию wpfts_index_rebuild() для полной перестройки индекса поиска. Однако, этот способ менее эффективен, чем использование wpfts_post_reindex(), особенно если у вас много записей на сайте. Полная перестройка индекса занимает значительно больше времени.

Важные замечания:

  • Функция wpfts_post_reindex() доступна только в Pro версии WPFTS.
  • Убедитесь, что плагин WPFTS активирован перед вызовом функции wpfts_post_reindex().
  • Если вы используете кэширование на вашем сайте, не забудьте очистить кэш после переиндексации записей.

Используя функцию wpfts_post_reindex(), вы можете обеспечить актуальность индекса поиска WPFTS при программном добавлении или изменении записей. Это позволит вашим посетителям находить весь контент на вашем сайте, включая записи, добавленные скриптом.


Можно ли исключить определенные файлы из индексации в WPFTS?

Да, WPFTS предоставляет несколько способов исключить определенные файлы из индексации. Это может быть полезно, если у вас есть файлы, которые не должны быть доступны для поиска, например, конфиденциальные документы или временные файлы.

Способы исключения файлов из индексации:

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

  2. Исключение по ID вложения: Если вам нужно исключить конкретные файлы, вы можете использовать их ID. Добавьте следующий код в файл functions.php вашей темы (или дочерней темы):

add_filter('wpfts_index_pre_filter', function($where, $args) {
  // Список ID файлов, которые нужно исключить
  $excluded_attachment_ids = array(123, 456, 789);
 
  if (!empty($excluded_attachment_ids)) {
    $where .= " AND {$args['table']}.tid NOT IN (" . implode(',', $excluded_attachment_ids) . ")";
  }
 
  return $where;
}, 10, 2);
 

Замените 123, 456, 789 на ID файлов, которые вы хотите исключить. Этот код добавит условие NOT IN к SQL-запросу, используемому для выборки файлов для индексации.

  1. Исключение по URL файла: Вы также можете исключить файлы по их URL. Добавьте следующий код в файл functions.php вашей темы (или дочерней темы):
add_filter('wpfts_should_index_attachment', function($should_index, $attachment_id) {
    $excluded_urls = array(
        'https://example.com/wp-content/uploads/private-document.pdf',
        'https://example.com/wp-content/uploads/another-private-file.docx',
    );
    $attachment_url = wp_get_attachment_url($attachment_id);
 
    if (in_array($attachment_url, $excluded_urls)) {
        return false;
    }
 
  return $should_index;
}, 10, 2);

Замените URL-адреса в массиве $excluded_urls на URL-адреса файлов, которые вы хотите исключить.

  1. Исключение по родительской записи: Если файлы прикреплены к определенным записям или страницам, которые вы хотите исключить из поиска, вы можете исключить эти родительские записи, и прикрепленные файлы также будут исключены. Это можно сделать в настройках WPFTS, исключив определенные типы записей, или используя аналогичный код, как для исключения по ID вложения, но применяя его к post_parent.

После исключения файлов:

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

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


Как индексировать файлы, загруженные не через Медиатеку?

WPFTS по умолчанию индексирует файлы, загруженные через стандартную Медиатеку WordPress. Однако, многие плагины и темы загружают файлы напрямую в папки на сервере, минуя Медиатеку. В этом случае WPFTS не сможет автоматически обнаружить и проиндексировать эти файлы.

Как индексировать файлы, загруженные сторонними плагинами:

Для индексации файлов, загруженных не через Медиатеку, вам понадобится небольшая доработка кода с использованием хука wpfts_index_post. Вот общий алгоритм действий:

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

  2. Используйте хук wpfts_index_post: Этот хук позволяет добавлять произвольный контент в индекс WPFTS. Внутри функции-обработчика хука вам нужно получить путь к файлу и извлечь его содержимое.

  3. Извлеките содержимое файла: Для извлечения содержимого файла используйте функцию WPFTS_Utils::GetCachedFileContent_ByLocalLink(). Эта функция принимает путь к файлу в качестве аргумента и возвращает массив с данными файла, включая содержимое.

  4. Добавьте содержимое файла в индекс: Добавьте извлеченное содержимое в индекс WPFTS, используя ключ, например, external_file_content.

Пример кода:

Предположим, плагин хранит путь к файлу в метаполе _external_file_path. Тогда код для индексации будет выглядеть следующим образом:

add_filter('wpfts_index_post', function($index, $post) {
    global $wpfts_core;
 
    if (metadata_exists('post', $post->ID, '_external_file_path')) {
        $file_path = get_post_meta($post->ID, '_external_file_path', true);
 
        require_once $wpfts_core->root_dir.'/includes/wpfts_utils.class.php';
        $file_content = WPFTS_Utils::GetCachedFileContent_ByLocalLink($file_path, false, true);
 
 
        if (isset($file_content['post_content'])) {
            $index['external_file_content'] = $file_content['post_content'];
        }
    }
 
    return $index;
}, 10, 2);

Перестройка индекса:

После добавления кода не забудьте перестроить индекс поиска WPFTS, чтобы новые файлы были включены в индекс.

Важные моменты:

  • Путь к файлу: Убедитесь, что путь к файлу корректный и доступен для чтения скриптом WordPress.
  • Поддерживаемые типы файлов: WPFTS поддерживает индексацию только определенных типов файлов (PDF, DOCX, TXT и т.д.). Проверьте документацию плагина на совместимость с вашим типом файла.
  • Производительность: Индексация большого количества файлов может занять много времени и ресурсов сервера. Оптимизируйте файлы перед загрузкой и выполняйте индексацию в период низкой нагрузки.

Этот метод позволяет интегрировать WPFTS с практически любым плагином или темой, которые загружают файлы вне Медиатеки. Если у вас возникли трудности с настройкой, обратитесь в службу поддержки WPFTS.


Почему файлы, загруженные через WP Download Manager, не индексируются?

WP Download Manager (WPDM) — популярный плагин для управления загрузками, который хранит файлы отдельно от Медиатеки WordPress. По умолчанию, WPFTS не индексирует файлы, управляемые WPDM, поэтому они не будут появляться в результатах поиска.

Решение:

Для индексации файлов WPDM вам потребуется установить и активировать бесплатный аддон “WPFTS Add-on for WP Download Manager”. Этот аддон интегрирует WPFTS с WPDM, позволяя индексировать загруженные файлы и отображать их в результатах поиска.

Установка и настройка:

  1. Установите и активируйте аддон: Вы можете найти аддон в официальном репозитории плагинов WordPress, выполнив поиск по фразе “WPFTS Add-on for WP Download Manager”. После установки не забудьте активировать аддон.

  2. Проверьте настройки WPFTS: Убедитесь, что в настройках WPFTS включена индексация вложений (файлов). Это можно сделать на вкладке “Настройки индексации” в разделе “Типы записей”.

  3. Перестройте индекс поиска: После установки и активации аддона перестройте индекс поиска WPFTS. Это можно сделать на вкладке “Инструменты”.

  4. (Опционально) Настройте отображение результатов: Вы можете настроить, как результаты поиска файлов WPDM будут отображаться на странице результатов поиска. Например, вы можете включить отображение миниатюр файлов или изменить формат вывода информации о файле.

Возможные проблемы и их решения:

  • Файлы по-прежнему не индексируются после установки аддона: Убедитесь, что вы используете совместимые версии WPFTS, аддона и WPDM. Информация о совместимости обычно указана на странице аддона в репозитории плагинов. Также, попробуйте очистить кэш вашего сайта и браузера.

  • Индексация занимает слишком много времени: Если у вас большое количество файлов, индексация может занять значительное время. Убедитесь, что на вашем сервере достаточно ресурсов (памяти и времени выполнения скрипта).

  • Проблемы с отображением результатов: Если результаты поиска отображаются некорректно, проверьте настройки отображения в WPFTS и настройки вашей темы WordPress.

Если после выполнения всех этих шагов файлы WPDM по-прежнему не индексируются, обратитесь в службу поддержки WPFTS. Предоставьте информацию о версиях плагинов и темы, а также описание проблемы. Мы постараемся помочь вам настроить индексацию файлов WPDM.


Можно ли индексировать содержимое файлов, загруженных через RCWD Upload для ACF?

RCWD Upload для Advanced Custom Fields (ACF) — это удобный инструмент для загрузки файлов и прикрепления их к записям через пользовательские поля. Однако, WPFTS по умолчанию не индексирует файлы, загруженные через RCWD Upload, поскольку они не хранятся в стандартной Медиатеке WordPress.

Решение:

Для индексации содержимого файлов, загруженных через RCWD Upload, вам потребуется специальный аддон “WPFTS Add-on for RCWD Uploader”. Этот аддон интегрирует WPFTS с RCWD Upload, позволяя извлекать содержимое загруженных файлов и добавлять его в индекс поиска.

Установка и настройка:

  1. Установите и активируйте аддон: Вы можете загрузить аддон с нашего сайта. Установите его как обычный плагин WordPress и активируйте.

  2. Проверьте настройки WPFTS: Убедитесь, что в настройках WPFTS включена индексация пользовательских полей ACF, в которых хранятся файлы, загруженные через RCWD Upload. Это можно сделать на вкладке “Настройки индексации” в разделе “Пользовательские поля”.

  3. Перестройте индекс поиска: После установки и активации аддона перестройте индекс поиска WPFTS, чтобы новые файлы были включены в индекс. Это можно сделать на вкладке “Инструменты”.

Как работает аддон:

Аддон использует хук wpfts_index_post для доступа к данным записи во время индексации. Он извлекает путь к файлу, загруженному через RCWD Upload, из соответствующего пользовательского поля ACF. Затем аддон использует функции WPFTS для извлечения содержимого файла и добавления его в индекс поиска.

Важные замечания:

  • Совместимость: Убедитесь, что версии WPFTS, ACF и RCWD Upload совместимы друг с другом. Проверьте документацию аддона для получения информации о совместимости.

  • Производительность: Индексация содержимого файлов может потребовать значительных ресурсов сервера, особенно при большом количестве файлов.

Если у вас возникли трудности с установкой или настройкой аддона, обратитесь в службу поддержки WPFTS.

Без этого аддона WPFTS не сможет индексировать содержимое файлов, загруженных через RCWD Upload. Установка аддона — необходимый шаг для обеспечения полноценного поиска по всем файлам на вашем сайте.


Как индексировать контент шорткодов в WPFTS?

Шорткоды — это удобный способ вставлять динамический контент в записи и страницы WordPress. Однако, стандартный поиск WordPress и WPFTS по умолчанию индексируют только сам текст шорткода, а не контент, который он генерирует. Это значит, что содержимое, выводимое шорткодом, не будет учитываться при поиске.

Решение:

WPFTS предоставляет возможность индексировать контент, генерируемый шорткодами. Для этого нужно включить соответствующую опцию в настройках плагина.

Включение индексации шорткодов:

  1. Откройте страницу настроек WPFTS в админ-панели WordPress.

  2. Перейдите на вкладку “Настройки индексации” (Indexing Engine).

  3. В разделе “Настройки по умолчанию” (Indexing Defaults) найдите опцию “Индексировать контент шорткодов” (Index shortcodes content) и установите флажок.

  4. Сохраните изменения.

Перестройка индекса:

После включения этой опции необходимо перестроить индекс поиска, чтобы WPFTS проиндексировал контент, генерируемый шорткодами. Это можно сделать на вкладке “Инструменты” (Tools), нажав кнопку “Перестроить индекс” (Rebuild Index).

Как это работает:

При включенной опции “Индексировать контент шорткодов” WPFTS перед индексацией записи выполняет все шорткоды, содержащиеся в ее тексте. Таким образом, в индекс попадает не сам текст шорткода, а реальный контент, который он выводит. Это позволяет находить записи по содержимому, генерируемому шорткодами.

Важные замечания:

  • Производительность: Обработка шорткодов может замедлить индексацию, особенно если у вас много записей со сложными шорткодами.

  • Конфликты: В редких случаях индексация шорткодов может приводить к конфликтам с другими плагинами. Если вы заметили проблемы после включения этой опции, попробуйте временно отключить другие плагины, чтобы выявить источник конфликта.

  • Не все шорткоды могут быть проиндексированы: Некоторые шорткоды могут генерировать контент, который невозможно проиндексировать, например, интерактивные элементы или видео.

Включение индексации шорткодов — важный шаг для обеспечения полноценного поиска на вашем сайте. Это позволит вашим посетителям находить записи не только по их текстовому содержимому, но и по контенту, генерируемому шорткодами.


Как индексировать теги записей (post tags) в WPFTS?

По умолчанию, WPFTS индексирует заголовки и содержание записей, но не теги (post tags). Если вы хотите, чтобы пользователи могли находить записи по тегам, вам нужно добавить теги в индекс поиска.

Добавление тегов в индекс:

Самый простой способ добавить теги в индекс — использовать хук wpfts_index_post. Этот хук позволяет добавлять произвольный контент в индекс WPFTS для каждой записи.

Вот пример кода, который добавляет теги в индекс:

add_filter('wpfts_index_post', function($index, $post) {
  if ($post->post_type === 'post') { //  Проверяем, что это запись (post)
 
    $tags = get_the_terms($post->ID, 'post_tag');
    if ( $tags && ! is_wp_error( $tags ) ) {
        $tag_names = array();
        foreach ( $tags as $tag ) {
            $tag_names[] = $tag->name;
        }
        $index['post_tags'] = implode(' ', $tag_names); // Добавляем теги в индекс
    }
 
  }
  return $index;
}, 10, 2);

Объяснение кода:

  1. add_filter('wpfts_index_post', ...): Этот код регистрирует функцию, которая будет вызываться при индексации каждой записи.

  2. if ($post->post_type === 'post'): Мы проверяем, что текущая запись — это запись типа “post”. Если у вас есть другие типы записей, для которых нужно индексировать теги, добавьте их в условие.

  3. $tags = get_the_terms($post->ID, 'post_tag');: Эта функция получает все теги, прикрепленные к текущей записи.

  4. if ( $tags && ! is_wp_error( $tags ) ): Проверяем, что теги существуют и не возникло ошибок при их получении.

  5. Цикл foreach: Мы перебираем все теги и добавляем их названия в массив $tag_names.

  6. $index['post_tags'] = implode(' ', $tag_names);: Мы объединяем все названия тегов в одну строку, разделенную пробелами, и добавляем ее в индекс WPFTS с ключом post_tags. Это создаст отдельный кластер в индексе для тегов.

  7. return $index;: Возвращаем измененный массив $index.

Перестройка индекса:

После добавления кода в functions.php не забудьте перестроить индекс поиска, чтобы WPFTS проиндексировал теги для всех ваших записей. Это можно сделать на странице настроек WPFTS на вкладке “Инструменты”, нажав кнопку “Перестроить индекс”.

Теперь, когда вы ищете слово, которое является тегом какой-либо записи, эта запись будет отображаться в результатах поиска. Вы также можете использовать ключ post_tags для настройки веса релевантности тегов в настройках WPFTS.