Zend_Search_Lucene在索引期间崩溃

时间:2009-04-28 12:12:01

标签: php zend-framework lucene

我想为我的网页创建搜索引擎,但在服务器上编制索引时会崩溃并出现错误:

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 个答案:

答案 0 :(得分:2)

似乎问题在于索引中的大量细分。

您可以查看索引文件夹包含的文件数量吗?

有两种方法可以解决这个问题: a)更频繁地优化索引。 b)使用另一个MaxBufferedDocs / MergeFactor参数。有关详细信息,请参阅Zend_Search_Lucene documentation

如果没有帮助,请注册JIRA问题。

答案 1 :(得分:0)

PHP已经达到了它可以立即打开的文件数量限制似乎可能是在php.ini中更改的选项,可能是操作系统(配额)限制,或者您可以告诉索引器减速并没有同时打开这么多文件。

答案 2 :(得分:0)

这绝对是Linux /内核强加的限制。在计算机上以root身份使用以下命令:

cat /proc/sys/fs/file-nr

返回值定义为:

  1. 分配的文件描述符总数
  2. 免费分配的文件描述符总数
  3. 最大打开文件描述符
  4. 我也会猜测并说你在共享主机上。如果是这种情况,我想这种问题可能经常出现。

    最后,以下文章提供了有关Linux和打开文件描述符的大量信息,即使它有点过时。

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