Dürüst olmak gerekirse, ben ilk başta kafa karıştırıcı görünüyor olsa gibi, onunla vâkıf kez kullanmak çok basit, Zend_Lucene kullanarak öneriyoruz. Indeksleme yavaş olsa da, arama çok hızlı.
Eğer hızlı ve güçlü bir arama motoru yazmak istiyorsanız, öğretici bir uygulama bulmak için gidiş değildir, bazı araştırma yapıyor ve konuyla ilgili o yüzden kağıtları okuma iyi olurdu. Başka bir deyişle, araştırma ve sert bir sürü olmadan Zend lucene rakip PHP şey yazmak mümkün olacak değildir.
Belgeler çok çok iyi, ve ben bir hiçbiri Zend Framework proje bazlı Zend lucene uygulamak için başardı. Bu sadece yarım saat belgelerini okuma ve sindirerek geçirdi ve başka bir yarım saat sizin varsayımlar doğru olup olmadığını kontrol etmek testlerin hızlı bir dizi yazmayı gerektirir.
Bir araba kimliği ve marka ile bir belge oluşturmak için:
//if it hasn't been created, you need to use ::create rather than ::open
$index = Zend_Search_Lucene::open('/data/my-index');
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('Car', 'MyCar'));
$doc->addField(Zend_Search_Lucene_Field::Text('Make', 'BMW'));
$index->addDocument($doc);
Araba bulmak için:
$index = Zend_Search_Lucene::open('/data/my-index');
$result = $index->find('Car:MyCar');
foreach ( $result as $hit ){
echo $hit->Make;
}
Olumsuz Zend_Lucene bu depolama konusunda herhangi bir garanti vermez, bir depolama motoru değildir, bu yüzden kullanarak, kayıtları saklamak için kullanabilirsiniz, ancak uygun bir veritabanı daha iyi bir seçenek olacaktır. Bu benim sadece arama indeksi ve senkronize veritabanı hem tutmak zorunda, karşılaşılan konulardan biridir. Ben buldum iyi yolu, sadece bir eklenti / veritabanı ve indeks hem kaldırmak adında bir sarıcı sınıf oluşturmak oldu.