I http://demos.zatechcorp.com/codeigniter/ de uygulama üzerinde çalışıyorum
Benim makine üzerinde çalışan mevcut cisimleşmiş hali olarak, ben Codeigniter içeride ZendFramework yüklendi ve bu böyle bir dizin oluşturulur:
// ... Some code that loads all the markets
foreach ($markets as $market)
{
$doc = new Zend_Search_Lucene_Document();
// Id for retrieval
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('id', $market->id));
// Store document URL to identify it in search result.
$doc->addField(Zend_Search_Lucene_Field::Text('url', $market->permalink));
// Index document content
$doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $market->description));
// Title
$doc->addField(Zend_Search_Lucene_Field::Text('title', $market->title));
// Phone
$doc->addField(Zend_Search_Lucene_Field::Keyword('phone', $market->phone));
// Fax
$doc->addField(Zend_Search_Lucene_Field::Keyword('fax', $market->fax));
// Street
$doc->addField(Zend_Search_Lucene_Field::Keyword('street', $market->street));
// City
$doc->addField(Zend_Search_Lucene_Field::Keyword('city', $market->city));
// State
$doc->addField(Zend_Search_Lucene_Field::Keyword('state', $market->state));
// Zip
$doc->addField(Zend_Search_Lucene_Field::Keyword('zip', $market->zip));
// Type
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('type', 'market'));
// Store Document
$index->addDocument($doc);
}
Benim arama, ben bunu:
$hits = $index->find($q);
Bu basit kelimelerle çalışır, ama ben "Sheba Foods" (tırnak dahil) gibi bir arama yapmak istediğinizde, bu bir sonuç verir, ama daha kelime "Sheba" yok yanlış biri.
Çünkü onun belirgin sorunlardan uzak MySQL tam metin arama taşındı, ve bu herhangi bir ilerleme yapamaz.
Ben Zend_Search_Lucene_Search_QueryParser :: parse () yöntemi bakarak oldum. Bu yöntemde cevap yalan mı?