Witam,

Moim problemem jest wyszukanie zdefiniowanego identyfikatora, mianowicie każdy indeksowany rekord ma unikalny identyfikator po którym później chciałbym go wyszukać jednak nie wiem czemu skrypt tego nie robi. Czy ktoś mógłby wyjaśnić mi dlaczego tak się dzieje ?

Indeksowanie danych:
  1. <?php
  2. $indexpath = './tmp/index';
  3.        $data = array(  array('id' => 1,'title' => 'Dlaczego PHP jest taki wolny ?','text' => 'On wcale nie jest wolny tylko ty jestes debilem'),
  4.                        array('id' => 2,'title' => 'Jak wydluzyc czas wykonywania skryptu ?','text' => 'Poczytaj o xxxx()'));
  5.  
  6.        try{
  7.  
  8.            $index = Zend_Search_Lucene::open($indexpath);
  9.            echo "Opened existing index in $indexpath";
  10.  
  11.        } catch(Zend_Search_Lucene_Exception $e) {
  12.  
  13.            try{
  14.  
  15.                $index=Zend_Search_Lucene::create($indexpath);
  16.                echo "Created new index in $indexpath";
  17.  
  18.            }catch(Zend_Search_Lucene_Exception $e){
  19.  
  20.                echo "Unable to open or create index: {$e->getMessage()}";
  21.            }
  22.  
  23.        }
  24.  
  25.        $document = new Zend_Search_Lucene_Document();
  26.  
  27.        foreach($data AS $d){
  28.            
  29.            $document->addField(Zend_Search_Lucene_Field::UnIndexed('doc',$d['id']));
  30.            $document->addField(Zend_Search_Lucene_Field::Text('title',$d['title']));
  31.            $document->addField(Zend_Search_Lucene_Field::Text('text',$d['text']));
  32.            $document->addField(Zend_Search_Lucene_Field::UnIndexed('date',date("F j, Y, g:i a")));
  33.  
  34.            $index->addDocument($document);
  35.        }
  36.  
  37.        $index->commit();
  38. ?>

Wyszukiwanie po identyfikatorze
  1. <?php
  2. $indexpath = './tmp/index';
  3.  
  4.        try{
  5.  
  6.            $index = Zend_Search_Lucene::open($indexpath);
  7.            echo "Opened existing index in $indexpath";
  8.  
  9.        } catch(Zend_Search_Lucene_Exception $e) {
  10.  
  11.            echo "Unable to open index: {$e->getMessage()}";
  12.        }
  13.  
  14.        $hits=$index->find('doc:1');
  15.  
  16.        var_dump($hits);
  17.  
  18.        foreach($hits as $hit){
  19.            echo "id: {$hit->doc}<br />";
  20.        }
  21. ?>