Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 /**
  * Commit changes
  *
  * Any remaining documents in the buffer will also be flushed
  *
  * @param boolean $overwrite
  * @param boolean $waitFlush
  * @param boolean $waitSearcher
  * @param boolean $expungeDeletes
  * @return Solarium_Result_Update
  */
 public function commit($overwrite = null, $waitFlush = null, $waitSearcher = null, $expungeDeletes = null)
 {
     $this->_client->triggerEvent('BufferedAddCommitStart', array($this->_buffer));
     $this->_updateQuery->addDocuments($this->_buffer, $overwrite);
     $this->_updateQuery->addCommit($waitFlush, $waitSearcher, $expungeDeletes);
     $result = $this->_client->update($this->_updateQuery);
     $this->clear();
     $this->_client->triggerEvent('BufferedAddCommitEnd', array($result));
     return $result;
 }