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 ) )
기타
- SolrClient::addDocument() - 색인에 문서를 추가합니다.
- SolrClient::commit() - 인덱스에 대한 모든 추가/삭제를 완료합니다.