Apache Solr SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — 인덱스에 SolrInputDocument 인스턴스 컬렉션을 추가합니다.


설명

public SolrClient::addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void

색인에 문서 모음을 추가합니다.


매개변수

doc
SolrInputDocument 인스턴스 컬렉션을 포함하는 배열입니다. 이 배열은 실제 변수여야 합니다.
overwrite
기존 문서를 덮어쓸지 여부입니다. false인 경우 중복됩니다(동일한 ID를 가진 여러 문서).

경고 PECL Solr < 2.0 $allowDups가 $overwrite 대신 사용되었습니다. 이것은 정확히 반대의 bool 플래그로 동일한 기능을 수행합니다.

$allowDups = false는 $overwrite = true와 동일합니다.

commitWithin
이 문서를 자동 커밋할 시간(밀리초)입니다. Solr 1.4부터 사용 가능. 기본값(0)은 비활성화됨을 의미합니다.

이 값을 지정하면 업데이트 대기 시간 요구 사항을 충족하면서 커밋 수를 최소로 최적화하여 Solr 자체에 커밋을 수행할 시기를 제어하고 Solr는 버퍼에서 가장 오래된 추가가 만기될 때 자동으로 커밋을 수행합니다.


반환 값

SolrUpdateResponse 개체를 반환하거나 실패 시 예외를 throw합니다.


오류/예외

클라이언트가 실패했거나 연결 문제가 있는 경우 SolrClientException을 던집니다.

Solr Server가 요청을 처리하는 데 실패한 경우 SolrServerException을 던집니다.


Examples

예제 #1 SolrClient::addDocuments() 예제

                  
<?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');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called

print_r($updateResponse->getResponse());

?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)
                

기타