Elastica\Aggregation\TopHits::setScriptFields PHP Method

setScriptFields() public method

Set script fields.
public setScriptFields ( array | ScriptFields $scriptFields )
$scriptFields array | Elastica\Script\ScriptFields
    public function setScriptFields($scriptFields)
    {
        if (is_array($scriptFields)) {
            $scriptFields = new ScriptFields($scriptFields);
        }
        return $this->setParam('script_fields', $scriptFields);
    }

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]);
         }
     }
 }