EDIT:
Ben kullanarak sorunu çözmek için başardı:
+"lorem ipsum" +type:photo
+"lorem ipsum" +type:video
Başka bir sorun olsa endeks doğru sonuçları dönüyor ama yanlış id (id birincil anahtar) olmasıdır. Ben dizin oluşturmak için kullandığınız veritabanı - Daha spesifik olarak, iade id alanlar gerçek kimlikleri (1 id) 1'den azdır.
Bu çok garip.
Ne bu arama sorguları ile yanlış:
"lorem ipsum" AND +type:photo
"lorem ipsum" AND +type:video
İlk sorgu türü = fotoğrafı, diğeri yalnızca video arama sadece sonuç bulmak gerekiyordu. Ama iki fotoğraf ve videoları hem dönüyor.
Burada dizin oluşturmak nasıl:
// create media index
$index = Zend_Search_Lucene::create('/data/media_index');
// get all media
$media = $this->_getTable('Media')->get();
// iterate through media and build index
foreach ($media as $m) {
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('id',
$m->id));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('thumb_path',
$m->thumb_path));
$doc->addField(Zend_Search_Lucene_Field::Keyword('title',
$m->title));
$doc->addField(Zend_Search_Lucene_Field::UnStored('description',
$m->description));
$doc->addField(Zend_Search_Lucene_Field::Keyword('type',
$m->type));
$index->addDocument($doc);
}
// commit the index
$index->commit();
Ve burada bunu araştırın nasıl:
$index = Zend_Search_Lucene::open('/data/media_index');
$this->view->photos = $index->find('"lorem ipsum" AND +type:photo');
$this->view->videos = $index->find('"lorem ipsum" AND +type:video');
Herhangi bir fikir?