Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Решение проблем с индексированием

  Проблемы Причины Решения

1

Индексирование в фоновом режиме не производится. В журнале сообщений модуля нет сообщений

“INDEXING_BEGIN_END”,

“SCHEDULER_START”

(протоколирование этих событий включено):

в crontab отсутствует команда для запуска индексатора или она указана с ошибками

  • проверьте наличие строки для запуска индексатора в crontab
  • проверьте, возникают ли ошибки при выполнении команды из cron (вывод ошибок: добавьте к командной строке "2>&1"; чтобы записать весь вывод скрипта в файл: ">>./search.log")
  • проверьте наличие фоновых заданий (например, задач индексирования, выполняемых по расписанию)

2

При запуске в браузере перестаёт обновляться окно с результатами индексирования

 

 

2.1

Процесс индексирования обрывается в середине (проиндексированы не все страницы)

превышение лимитов нагрузки на процессор

увеличьте значение параметра IndexerInBrowserSlowdownDelay

превышение лимита времени (самая частая причина)

  • запускайте индексирование из cron или консоли
  • Скорректируйте значение параметра IndexerTimeThreshold. Время выполнения скрипта должно быть меньше max_execution_time в PHP и меньше таймаута, установленного в конфигурации веб-сервера

превышение лимита памяти

  • увеличьте лимит памяти в настройках PHP (memory_limit)
  • скорректируйте значение параметра IndexerMemoryThreshold
  • ограничьте объём индексируемой информации (параметры модуля MaxTermsPerField, «Максимальный размер индексируемых страниц»)

2.2

Процесс индексирования обрывается в конце (проиндексированы все страницы, но не появляется сообщения об успешном завершении индексирования)

в конце индексирования производится оптимизация индекса, что может потребовать значительного времени

  • запускайте индексирование из cron или консоли
  • Включите сохранение индекса в базе данных. Если сохранение индекса в базе данных уже включено, установите параметр “DatabaseIndex_OptimizationFrequency” равным 0 (пустое значение)

3

При запуске из консоли или cron индексирование не завершается

 

 

3.1

В журнале событий модуля появляется сообщение “Task removed”

 

 

3.1.1

В лог-файлах сервера есть сообщение о превышении лимита памяти “Allowed memory size of X bytes exhausted (tried to allocate Y bytes)”

Объём памяти, необходимый для индексирования, более, чем установлено в настройках PHP (memory_limit)

  • Увеличьте лимит памяти в настройках PHP (memory_limit)
  • Ограничьте объём индексируемой информации (параметры модуля MaxTermsPerField, «Максимальный размер индексируемых страниц»)
  • Включите индексирование с разбивкой задачи на части, скорректируйте параметр IndexerConsoleMemoryThreshold

3.1.2

Процесс принудительно завершается сервером из-за превышения нагрузки (при запуске из консоли может появляться сообщение “Killed” или “Terminated”)

Установлено ограничение на нагрузку, создаваемую пользовательскими процессами

3.1.3

В лог-файлах сервера есть сообщение об ошибке “Too many open files”

Установлено значительное ограничение на количество открытых файлов

3.1.4

Скрипт завершается сервером по превышению лимита времени

Запрещён вызов функции set_time_limit()

  • Удалите функцию set_time_limit() из списка запрещённых в php.ini
  • Скорректируйте другие настройки сервера, которые могут влиять на максимальное время выполнения скрипта
  • Включите сохранение индекса в базе данных
  • Включите индексирование с разбивкой задачи на части
  • Если индексирование с разбивкой на части уже включено, установите значение параметра “IndexerConsoleRestartHungTasks” равным 1

3.1.5

Причина неизвестна

Необходимо уточнить причину возникновения проблемы

  • Запустите скрипт индексирования и консоли (SSH), возможно будет выведено сообщение об ошибке
  • Сохраните вывод результата запуска скрипта из cron (включая поток stderr: добавьте "2>&1") в файл
  • Обратитесь за помощью в техническую поддержку хостинг-провайдера, к системному администратору сервера

3.2

Сообщения “Task removed” в журнале события модуля нет

Индексирование требует много времени (например, на большом сайте)

  • Дождитесь окончания индексирования

4

Индексирование занимает слишком много времени

Значительный объём информации на сайте

5

Индексирование создаёт слишком большую нагрузку на сервер

Индексирование является требовательной к ресурсам задачей

6

Индексирование останавливается при попытке индексирования страниц c большим объемом информации

Недостаточно памяти для выполнения индексирования больших документов

  • Увеличьте лимиты расходования памяти и времени (настройки PHP memory_limit, max_execution_time)
  • Ограничьте объём индексируемой информации (параметры модуля MaxTermsPerField, «Максимальный размер индексируемых страниц»)

7

Индекс занимает слишком много места (включено сохранение индекса в базе данных)

Это является особенностью поискового индекса, сохраняемого в базе данных

8

Ошибка “Cannot open Lucene index”

Индекс Lucene повреждён

  • Удалите все файлы в папке netcat_files/Search/Lucene

 

Смотрите также: Настройки индексирования для некоторых хостинг-провайдеров.

 

Описание проекта