Я работаю над проектом, связанным с персонализированной поисковой системой.
Я наткнулся на 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 документов, не говоря уже о фиксации индекса. Есть мысли?