public function insertMultiple(array $data) { /* * Generate the solr documents. */ $solr_documents = array(); foreach ($data as $document) { $solr_document = new Solarium_Document_ReadWrite(); foreach ($document as $field => $value) { if ($this->_getHelper()->isDefaultField($field)) { $solr_document->{$field} = $value; } else { $solr_document->{$field . '_s'} = $value; /* Custom data. */ } } $solr_documents[] = $solr_document; unset($solr_document); } /* * Create the query. */ $query = new Solarium_Query_Update(); $query->addDocuments($solr_documents); $query->addCommit(); $query->addOptimize(); /* * Update into Solr. */ $this->getClient()->update($query); }
public function testCompleteRequest() { $this->_query->addDeleteById(1); $this->_query->addRollback(); $this->_query->addDeleteQuery('*:*'); $this->_query->addDocument(new Solarium_Document_ReadWrite(array('id' => 1))); $this->_query->addCommit(); $this->_query->addOptimize(); $this->assertEquals('<update>' . '<delete><id>1</id></delete>' . '<rollback/>' . '<delete><query>*:*</query></delete>' . '<add><doc><field name="id">1</field></doc></add>' . '<commit/>' . '<optimize/>' . '</update>', $this->_builder->getRawData($this->_query)); }