Esempio n. 1
0
 /**
  * Indexes the document $document using definition $definition
  *
  * @param ezcSearchDocumentDefinition $definition
  * @param mixed $document
  */
 public function index(ezcSearchDocumentDefinition $definition, $document)
 {
     $doc = new Zend_Search_Lucene_Document();
     $doc->addField(Zend_Search_Lucene_Field::Text('ezcsearch_type', $definition->documentType));
     foreach ($definition->fields as $field) {
         $values = $this->mapFieldValuesForIndex($field, $document[$field->field]);
         foreach ($values as $value) {
             switch ($field->type) {
                 case ezcSearchDocumentDefinition::INT:
                 case ezcSearchDocumentDefinition::DATE:
                     $doc->addField(Zend_Search_Lucene_Field::Keyword($field->field, $value));
                     break;
                 default:
                     $doc->addField(Zend_Search_Lucene_Field::Text($field->field, $value, 'UTF-8'));
             }
         }
     }
     $this->connection->addDocument($doc);
 }