Elastica\Query::addScriptField PHP Method

addScriptField() public method

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

Usage Example

Example #1
0
 /**
  * @group functional
  */
 public function testSearch()
 {
     $index = $this->_createIndex();
     $type = $index->getType('test');
     $type->setMapping(new Mapping(null, array('location' => array('type' => 'geo_point'))));
     $type->addDocuments(array(new Document(1, array('location' => array('lat' => 48.8825968, 'lon' => 2.3706111))), new Document(2, array('location' => array('lat' => 48.9057932, 'lon' => 2.2739735)))));
     $index->refresh();
     $scriptFile = new ScriptFile('calculate-distance', array('lat' => 48.858859, 'lon' => 2.3470599));
     $query = new Query();
     $query->addScriptField('distance', $scriptFile);
     $resultSet = $type->search($query);
     $results = $resultSet->getResults();
     $this->assertEquals(2, $resultSet->count());
     $this->assertEquals(array(3.1494078652615), $results[0]->__get('distance'));
     $this->assertEquals(array(7.463982587692456), $results[1]->__get('distance'));
 }
All Usage Examples Of Elastica\Query::addScriptField