%PDF- %PDF-
| Direktori : /home/graphicd/public_html/vebto/vendor/ongr/elasticsearch-dsl/src/Highlight/ |
| Current File : /home/graphicd/public_html/vebto/vendor/ongr/elasticsearch-dsl/src/Highlight/Highlight.php |
<?php
/*
* This file is part of the ONGR package.
*
* (c) NFQ Technologies UAB <info@nfq.com>
*
* 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
*
* @return $this
*/
public function setTags(array $preTags, array $postTags)
{
$this->tags['pre_tags'] = $preTags;
$this->tags['post_tags'] = $postTags;
return $this;
}
/**
* {@inheritdoc}
*/
public function getType()
{
return 'highlight';
}
/**
* {@inheritdoc}
*/
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;
}
}