当前位置: 首页>>代码示例>>PHP>>正文


PHP Document::setScript方法代码示例

本文整理汇总了PHP中Elastica\Document::setScript方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::setScript方法的具体用法?PHP Document::setScript怎么用?PHP Document::setScript使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Elastica\Document的用法示例。


在下文中一共展示了Document::setScript方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: testUpdateDocument

 public function testUpdateDocument()
 {
     $client = $this->_getClient();
     $index = $client->getIndex('elastica_test');
     $type = $index->getType('update_type');
     $id = 1;
     $type->addDocument(new Document($id, array('name' => 'bruce wayne batman', 'counter' => 1)));
     $newName = 'batman';
     $document = new Document($id);
     $script = new Script("ctx._source.name = name; ctx._source.counter += count", array('name' => $newName, 'count' => 2));
     $document->setScript($script);
     $type->updateDocument($document, array('refresh' => true));
     $updatedDoc = $type->getDocument($id)->getData();
     $this->assertEquals($newName, $updatedDoc['name'], "Name was not updated");
     $this->assertEquals(3, $updatedDoc['counter'], "Counter was not incremented");
 }
开发者ID:kskod,项目名称:Elastica,代码行数:16,代码来源:TypeTest.php

示例2: testSetScript

 public function testSetScript()
 {
     $document = new Document();
     $script = new Script('ctx._source.counter += count');
     $script->setParam('count', 1);
     $this->assertFalse($document->hasScript());
     $document->setScript($script);
     $this->assertTrue($document->hasScript());
     $this->assertSame($script, $document->getScript());
 }
开发者ID:kskod,项目名称:Elastica,代码行数:10,代码来源:DocumentTest.php

示例3: testUpdateDocumentByDocumentWithScript

 public function testUpdateDocumentByDocumentWithScript()
 {
     $index = $this->_createIndex();
     $type = $index->getType('test');
     $client = $index->getClient();
     $newDocument = new Document(1, array('field1' => 'value1', 'field2' => 10, 'field3' => 'should be removed', 'field4' => 'value4'));
     $script = new Script('ctx._source.field2 += count; ctx._source.remove("field3"); ctx._source.field4 = "changed"');
     $script->setParam('count', 5);
     $newDocument->setScript($script);
     // should use document fields because document does not exist, script is avoided
     $client->updateDocument(1, $newDocument, $index->getName(), $type->getName(), array('fields' => '_source'));
     $document = $type->getDocument(1);
     $this->assertInstanceOf('Elastica\\Document', $document);
     $data = $document->getData();
     $this->assertArrayHasKey('field1', $data);
     $this->assertEquals('value1', $data['field1']);
     $this->assertArrayHasKey('field2', $data);
     $this->assertEquals(10, $data['field2']);
     $this->assertArrayHasKey('field3', $data);
     $this->assertEquals('should be removed', $data['field3']);
     $this->assertArrayHasKey('field4', $data);
     $this->assertEquals('value4', $data['field4']);
     // should use script because document exists, document values are ignored
     $client->updateDocument(1, $newDocument, $index->getName(), $type->getName(), array('fields' => '_source'));
     $document = $type->getDocument(1);
     $this->assertInstanceOf('Elastica\\Document', $document);
     $data = $document->getData();
     $this->assertArrayHasKey('field1', $data);
     $this->assertEquals('value1', $data['field1']);
     $this->assertArrayHasKey('field2', $data);
     $this->assertEquals(15, $data['field2']);
     $this->assertArrayHasKey('field4', $data);
     $this->assertEquals('changed', $data['field4']);
     $this->assertArrayNotHasKey('field3', $data);
 }
开发者ID:kskod,项目名称:Elastica,代码行数:35,代码来源:ClientTest.php


注:本文中的Elastica\Document::setScript方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。