本文整理汇总了PHP中Elastica\Document::setVersion方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::setVersion方法的具体用法?PHP Document::setVersion怎么用?PHP Document::setVersion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Elastica\Document
的用法示例。
在下文中一共展示了Document::setVersion方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSearchRequest
/**
* @dataProvider configProvider
*/
public function testSearchRequest($config)
{
// Creates a new index 'xodoa' and a type 'user' inside this index
$client = new Client($config);
$index = $client->getIndex('elastica_test1');
$index->create(array(), true);
$type = $index->getType('user');
// Adds 1 document to the index
$doc1 = new Document(1, array('username' => 'hans', 'test' => array('2', '3', '5')));
$doc1->setVersion(0);
$type->addDocument($doc1);
// Adds a list of documents with _bulk upload to the index
$docs = array();
$docs[] = new Document(2, array('username' => 'john', 'test' => array('1', '3', '6')));
$docs[] = new Document(3, array('username' => 'rolf', 'test' => array('2', '3', '7')));
$type->addDocuments($docs);
// Refresh index
$index->refresh();
$resultSet = $type->search('rolf');
$this->assertEquals(1, $resultSet->getTotalHits());
}
示例2: updateDocument
/**
* Update document, using update script. Requires elasticsearch >= 0.19.0
*
* @param int $id document id
* @param array|\Elastica\Script|\Elastica\Document $data raw data for request body
* @param string $index index to update
* @param string $type type of index to update
* @param array $options array of query params to use for query. For possible options check es api
* @return \Elastica\Response
* @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
*/
public function updateDocument($id, $data, $index, $type, array $options = array())
{
$path = $index . '/' . $type . '/' . $id . '/_update';
if ($data instanceof Script) {
$requestData = $data->toArray();
} elseif ($data instanceof Document) {
$requestData = array('doc' => $data->getData());
if ($data->getDocAsUpsert()) {
$requestData['doc_as_upsert'] = true;
}
$docOptions = $data->getOptions(array('version', 'version_type', 'routing', 'percolate', 'parent', 'fields', 'retry_on_conflict', 'consistency', 'replication', 'refresh', 'timeout'));
$options += $docOptions;
// set fields param to source only if options was not set before
if ($data instanceof Document && ($data->isAutoPopulate() || $this->getConfigValue(array('document', 'autoPopulate'), false)) && !isset($options['fields'])) {
$options['fields'] = '_source';
}
} else {
$requestData = $data;
}
//If an upsert document exists
if ($data instanceof Script || $data instanceof Document) {
if ($data->hasUpsert()) {
$requestData['upsert'] = $data->getUpsert()->getData();
}
}
if (!isset($options['retry_on_conflict'])) {
$retryOnConflict = $this->getConfig("retryOnConflict");
$options['retry_on_conflict'] = $retryOnConflict;
}
$response = $this->request($path, Request::POST, $requestData, $options);
if ($response->isOk() && $data instanceof Document && ($data->isAutoPopulate() || $this->getConfigValue(array('document', 'autoPopulate'), false))) {
$responseData = $response->getData();
if (isset($responseData['_version'])) {
$data->setVersion($responseData['_version']);
}
if (isset($options['fields'])) {
$this->_populateDocumentFieldsFromResponse($response, $data, $options['fields']);
}
}
return $response;
}
示例3: getDocument
/**
* Get the document from search index
*
* @param string $id Document id
* @param array $options Options for the get request.
* @throws \Elastica\Exception\NotFoundException
* @return \Elastica\Document
*/
public function getDocument($id, $options = array())
{
$path = urlencode($id);
try {
$result = $this->request($path, Request::GET, array(), $options)->getData();
} catch (ResponseException $e) {
throw new NotFoundException('doc id ' . $id . ' not found');
}
if (empty($result['exists'])) {
throw new NotFoundException('doc id ' . $id . ' not found');
}
$data = isset($result['_source']) ? $result['_source'] : array();
$document = new Document($id, $data, $this->getName(), $this->getIndex());
$document->setVersion($result['_version']);
return $document;
}
示例4: getDocument
/**
* Get the document from search index
*
* @throws \Elastica\Exception\NotFoundException
* @throws \Elastica\Exception\ResponseException
*
* @param string $id Document id
* @param array $options Options for the get request.
* @return \Elastica\Document
*/
public function getDocument($id, $options = array())
{
$path = urlencode($id);
$response = $this->request($path, Request::GET, array(), $options);
$result = $response->getData();
if (!isset($result['found']) || $result['found'] === false) {
throw new NotFoundException('doc id ' . $id . ' not found');
}
if (isset($result['fields'])) {
$data = $result['fields'];
} elseif (isset($result['_source'])) {
$data = $result['_source'];
} else {
$data = array();
}
$document = new Document($id, $data, $this->getName(), $this->getIndex());
$document->setVersion($result['_version']);
return $document;
}
示例5: getDocument
/**
* Get the document from search index
*
* @param string $id Document id
* @param array $options Options for the get request.
* @throws \Elastica\Exception\NotFoundException
* @return \Elastica\Document
*/
public function getDocument($id, $options = array())
{
$path = urlencode($id);
try {
$response = $this->request($path, Request::GET, array(), $options);
$result = $response->getData();
} catch (ResponseException $e) {
throw new NotFoundException('doc id ' . $id . ' not found');
}
$info = $response->getTransferInfo();
if ($info['http_code'] !== 200) {
throw new NotFoundException('doc id ' . $id . ' not found');
}
if (isset($result['fields'])) {
$data = $result['fields'];
} elseif (isset($result['_source'])) {
$data = $result['_source'];
} else {
$data = array();
}
$document = new Document($id, $data, $this->getName(), $this->getIndex());
$document->setVersion($result['_version']);
return $document;
}