SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument将文档添加到索引中

描述

public SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse

此方法将文档添加到索引中。

参数

doc

SolrInputDocument 实例。

overwrite

是否覆盖现有文档。如果为 false,则会存在重复项(多个具有相同 ID 的文档)。

警告

PECL Solr < 2.0 使用 $allowDups 而不是 $overwrite,它们的功能相同,但布尔标志正好相反。

$allowDups = false 与 $overwrite = true 相同

commitWithin

自动提交此文档的毫秒数。从 Solr 1.4 开始可用。默认值(0)表示禁用。

当指定此值时,它将把何时进行提交的控制权交给 Solr 本身,将提交次数优化到最少,同时仍然满足更新延迟要求,Solr 将在缓冲区中最旧的添加即将到期时自动进行提交。

返回值

返回一个 SolrUpdateResponse 对象,或在失败时抛出异常。

错误/异常

如果客户端失败或存在连接问题,则抛出 SolrClientException

如果 Solr 服务器未能处理请求,则抛出 SolrServerException

示例

示例 #1 SolrClient::addDocument() 示例

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

// 如果您没有使用 $commitWithin,则必须提交更改以进行写入
$client->commit();

print_r($updateResponse->getResponse());

?>

上面的示例将输出类似于以下内容

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

)

示例 #2 SolrClient::addDocument() 示例 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');

// 不需要调用 commit(),因为传递了 $commitWithin,所以 Solr 服务器将在 10 秒内自动提交
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

上面的示例将输出类似于以下内容

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

)

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top