Elastica\Aggregation\TopHits::addScriptField PHP Method

addScriptField() public method

Adds a Script to the aggregation.
public addScriptField ( string $name, Elastica\Script\AbstractScript $script )
$name string
$script Elastica\Script\AbstractScript
    public function addScriptField($name, AbstractScript $script)
    {
        if (!isset($this->_params['script_fields'])) {
            $this->_params['script_fields'] = new ScriptFields();
        }
        $this->_params['script_fields']->addScript($name, $script);
        return $this;
    }

Usage Example

Example #1
0
 /**
  * @group functional
  */
 public function testAggregateWithScriptFields()
 {
     $this->_checkScriptInlineSetting();
     $aggr = new TopHits('top_tag_hits');
     $aggr->setSize(1);
     $aggr->setScriptFields(array('three' => new Script('1 + 2')));
     $aggr->addScriptField('five', new Script('3 + 2'));
     $resultDocs = array();
     $outerAggrResult = $this->getOuterAggregationResult($aggr);
     foreach ($outerAggrResult['buckets'] as $bucket) {
         foreach ($bucket['top_tag_hits']['hits']['hits'] as $doc) {
             $this->assertEquals(3, $doc['fields']['three'][0]);
             $this->assertEquals(5, $doc['fields']['five'][0]);
         }
     }
 }