Zend_Search_Lucene дает сбой во время индексации - PullRequest
0 голосов
/ 28 апреля 2009

Я хотел создать поисковую систему для моей веб-страницы, но при индексации на сервере она вылетает с ошибками:

Warning: opendir(/admin/lucene/) [function.opendir]: failed to open dir: Too many     open files in /admin/includes/Zend/Search/Lucene/Storage/Directory/Filesystem.php on line 159

Warning: readdir(): supplied argument is not a valid Directory resource in /admin/includes/Zend/Search/Lucene/Storage/Directory/Filesystem.php on line 160

Warning: closedir(): supplied argument is not a valid Directory resource in /admin/includes/Zend/Search/Lucene/Storage/Directory/Filesystem.php on line 167

Fatal error: Ignoring exception from Zend_Search_Lucene_Proxy::__destruct() while an exception is already active (Uncaught Zend_Search_Lucene_Exception in /admin/includes/Zend/Search/Lucene/Storage/File/Filesystem.php on line 66) in /admin/test.php on line 549

Я использую новейшую версию ZF. Есть ли решение для такой ошибки - я запускаю скрипт на localhost, и он прекрасно работает.

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2009

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

Не могли бы вы проверить, сколько файлов содержит папка индекса?

Есть два способа решения этой проблемы: а) Оптимизируйте индекс чаще. б) Используйте другие параметры MaxBufferedDocs / MergeFactor. Подробности смотрите в Zend_Search_Lucene документации .

Если это не поможет, зарегистрируйте проблему JIRA для этой проблемы.

0 голосов
/ 28 апреля 2009

Это наиболее определенное ограничение Linux / kernel. Используйте следующую команду как root на вашем компьютере:

cat /proc/sys/fs/file-nr

Возвращаемые значения определяются как:

  1. Всего выделенных файловых дескрипторов
  2. Всего свободно выделенных файловых дескрипторов
  3. Максимальное количество открытых файловых дескрипторов

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

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

http://www.netadmintools.com/art295.html

0 голосов
/ 28 апреля 2009

PHP достиг предела количества файлов, которые он может открывать одновременно, кажется, что это может быть возможность изменить в php.ini, может быть ограничение ОС (квоты) или вы можете сказать индексатору: замедлите работу и не открывайте одновременно столько файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...