Zend Framework: проблема с большой базой данных - PullRequest
0 голосов
/ 18 мая 2011

Я работаю над проектом, связанным с персонализированной поисковой системой. Я наткнулся на 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();   

Проблема в том, что я никогда не получаю более 3000 addDocuments для работы и каждый раз, когда программа «останавливается» на $index->addDocument($doc); Никогда не достигает более 5000 документов, не говоря уже о фиксации индекса. Есть мысли?

1 Ответ

1 голос
/ 19 мая 2011

Перемещение комментариев к ответам

@ Faidon Passias Вы запускаете из командной строки?

В этом случае max_execution_time по умолчанию будет 0.

В противном случае вы можете установить

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

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

Я полагаю, что сценарий останавливается через определенное время.

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