SolrClient::addDocument
  Adds a document to the index
  
 
  Description
  
   public SolrUpdateResponse SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0)
  
  
 
  Parameters
  
   
    
     - 
doc
- 
      
       The SolrInputDocument instance.
       
- 
overwrite
- 
      
       Whether to overwrite existing document or not. If falsethere will be duplicates (several documents with the same ID).
 Warning
            
              PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.
             
              $allowDups = false is the same as $overwrite = true
             
 
- 
commitWithin
- 
      
        Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.
       
        When this value specified, it leaves the control of when to do the commit
        to Solr itself, optimizing number of commits to a minimum while still
        fulfilling
        the update latency requirements, and Solr will automatically do a commit
        when the oldest add in the buffer is due.
        
 
 
  Return Values
  
   Returns a SolrUpdateResponse object or throws an Exception on failure.
  
  
 
 
  Errors/Exceptions
  
   Throws SolrClientException if the client had failed, or there was a connection issue.
  
  
   Throws SolrServerException if the Solr Server had failed to process the request.
  
  
 
  Examples
  
   
    Example #1  SolrClient::addDocument example
    
<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');
$updateResponse = $client->addDocument($doc);
// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();
print_r($updateResponse->getResponse());
?>
 
    The above example will output
something similar to:
SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )
)
 
    
   
   
   
    Example #2  SolrClient::addDocument example 2
    
<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');
// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);
print_r($updateResponse->getResponse());
?>
 
    The above example will output
something similar to:
SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )
)
 
    
   
  
  
 
  See Also
  
   
    -  SolrClient::addDocuments
-  SolrClient::commit