In our project (based on Zend Framework) we have to find a replacement for default Zend_Lucene. Now I'm trying to implement Solr with PHP Solr Client in it. We have 2 tables, where we take the data: categories and offers.
Indeksine Zend_Lucene ilave veri bu şekilde gitmek:
/*Code above we create new index and take data from mysql
And here are the old methods:
offer - is array with query results
*/
$to_index = "{$offer["name"]} {$offer["type"]} {$offer["description"]}";
$doc = new Zend_Search_Lucene_Document();
$doc->addField( Zend_Search_Lucene_Field::Text('text', $to_index, "utf-8") );
$doc->addField( Zend_Search_Lucene_Field::Keyword('cat_id', $offer["cat_id"]) );
$doc->addField( Zend_Search_Lucene_Field::Keyword('type', "offer") );
$doc->addField( Zend_Search_Lucene_Field::Keyword('id', $offer["id"]) );
$doc->addField( Zend_Search_Lucene_Field::UnIndexed('created', time()) );
$this->index->addDocument($doc);
/*End of old code*/
Kategoriler için biz aynı yöntemleri /
Solr ve PHP Solr Client'ta, ben (varsayılan örnek schema.xml kullanarak) kodu değişti ettik:
$to_index = "{$category["name"]}";
$doc = new Apache_Solr_Document();
$doc->text = $to_index;
$doc->type = "category";
$doc->id = $category["id"];
$doc->created = time();
try {
$this->solr->addDocuments($doc);
$this->solr->commit();
$this->solr->optimize();
}
catch ( Exception $e ) {
echo $e->getMessage();
}
Ama endeksinde arama bana verir 0! Ben Solr uygun endeksi yapmaz, bir şüphe var. (Ama dizin oluşturma sırasında hiçbir hata iletileri veya istisnaları vardır). Ayrıca ben SOLR sadece metin ve yöntemleri id direkleri vermek için denemek istiyorum. Ama sonuç aynı oldu!
Ben ne yapıyorum yanlış? Ben doğru Zend_Lucene yöntemlerini değiştirmek mi?