Zend lucene arama işlevini çağırmak nasıl?

2 Cevap php

Ben yorum yoksun bir Zend proje miras ve ben önceki geliştirici konuşmak alamadım. Ben hiçbir Zend deneyime sahip beri bazı sorunlar yaşıyorum :)

Ben Zend_Search_Lucene kullanarak siteden endeksleri ürün I Burada yanlış bir şey oluyor düşünüyorum çünkü bir işlev içinde bazı değişkenleri yazdırmak istiyorum.

Okuduğum kadarıyla, :: create yeni bir indeks ve :: açık güncellemelerini onu oluşturur. Yani bu öyle :: açık işlevi bazı değişkenleri yazdırmak istiyorum.

Fonksiyonun adı ve params altındadır. Herkes Bazı testler böylece bu işlevi çağrılmalıdır nasıl herhangi bir fikir var mı?

private function search($category,$string,$page = 1,$itemsByPage = 5)

EDIT: OR, ben varolan dizini nuke ve FS indeks dosyaları silme ve daha sonra bazı arama yaparak, örneğin, tamamen yeniden inşa edilmesi için zorlayabilirsiniz bir yolu var mı?

2 Cevap

Burada sıfırdan bir dizin oluşturmak için bazı kod:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new StandardAnalyzer_Analyzer_Standard_English());

$tmpIndexDir = '/your/index/dir/'
$index = Zend_Search_Lucene::create($tmpIndexDir);

foreach($myObjects as $myObject){

    $doc = new Zend_Search_Lucene_Document();
    $doc->addField(Zend_Search_Lucene_Field::UnIndexed('objectId', $myObject->getId()));
    $contents = $myObject->toString();
    $contentsField = Zend_Search_Lucene_Field::Text('contents', $contents);
    $doc->addField($contentsField);
    $index->addDocument($doc);
}

$index->optimize();

I gelen standart analizörü var nereye ... hatırlamıyorum ...

iyi örnekler - ZendFramework-1.9.6/demos/Zend/Search/Lucene

ZF full distro