Zend Framework:大数据库的问题

时间:2011-05-18 00:05:55

标签: php zend-framework memory-management

我正在开发一个关于个性化搜索引擎的项目。 当我在寻找一种优化搜索结果时间的方法时,我遇到了Zend Framework。

我正在处理一个包含5,000,000行和3个字段的数据库,我正在尝试将其编入索引。

这是我做的: 用Zend_Search_Lucene :: open()打开索引后;我正确查询数据库, 然后将结果放入$ result1,获取查询结果并使用以下循环处理它们:

    while( ($row1 = mysql_fetch_array($result1,MYSQL_NUM)) ) {
                $doc = new Zend_Search_Lucene_Document();           
                $doc->addField(Zend_Search_Lucene_Field::UnIndexed('catid',$row1[0]));
                $doc->addField(Zend_Search_Lucene_Field::Text('topic',$row1[1]));
                $doc->addField(Zend_Search_Lucene_Field::Text('title',$row1[2]));

                $index->addDocument($doc);

    }
$index->optimize();
$index->commit();   

问题是我从来没有超过3,000个addDocuments工作,并且每次程序在$index->addDocument($doc);'停顿'时永远不会超过5,000个文档,更不用说提交索引了。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将评论移至答案

@Faidon Passias你是从命令行运行的吗?

如果是这样,默认情况下max_execution_time将为0。

否则你可能想要设置

php.net/manual/en/function.set-time-limit.php

php.net/manual/en/info.configuration.php#ini.max-execution-time

我想剧本会在一定时间后停止。