for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the ONGR package.
*
* (c) NFQ Technologies UAB <[email protected]>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ONGR\ElasticsearchDSL\Highlight;
use ONGR\ElasticsearchDSL\BuilderInterface;
use ONGR\ElasticsearchDSL\ParametersTrait;
/**
* Data holder for highlight api.
class Highlight implements BuilderInterface
{
use ParametersTrait;
* @var array Holds fields for highlight.
private $fields = [];
* @var array
private $tags;
* @param string $name Field name to highlight.
* @param array $params
* @return $this
public function addField($name, array $params = [])
$this->fields[$name] = $params;
return $this;
}
* Sets html tag and its class used in highlighting.
* @param array $preTags
* @param array $postTags
public function setTags(array $preTags, array $postTags)
$this->tags['pre_tags'] = $preTags;
$this->tags['post_tags'] = $postTags;
* {@inheritdoc}
public function getType()
return 'highlight';
public function toArray()
$output = [];
if (is_array($this->tags)) {
$output = $this->tags;
$output = $this->processArray($output);
foreach ($this->fields as $field => $params) {
$output['fields'][$field] = count($params) ? $params : new \stdClass();
return $output;