/** * 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); }