我正在开发一个关于个性化搜索引擎的项目。 当我在寻找一种优化搜索结果时间的方法时,我遇到了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个文档,更不用说提交索引了。有什么想法吗?
答案 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。
我想剧本会在一定时间后停止。