From 102854060019b32b000c75717f83179e763f98c7 Mon Sep 17 00:00:00 2001 From: Martynas Sudintas <martynas.sudintas@ongr.io> Date: Wed, 1 Apr 2015 13:02:38 +0300 Subject: [PATCH] Highlight is now implementing builder interface --- Highlight/Highlight.php | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/Highlight/Highlight.php b/Highlight/Highlight.php index cee68ee..68601de 100644 --- a/Highlight/Highlight.php +++ b/Highlight/Highlight.php @@ -11,13 +11,14 @@ namespace ONGR\ElasticsearchBundle\DSL\Highlight; +use ONGR\ElasticsearchBundle\DSL\BuilderInterface; use ONGR\ElasticsearchBundle\DSL\NamedBuilderBag; use ONGR\ElasticsearchBundle\DSL\NamedBuilderInterface; /** * Data holder for highlight api. */ -class Highlight extends NamedBuilderBag +class Highlight extends NamedBuilderBag implements BuilderInterface { const TYPE_PLAIN = 'plain'; const TYPE_POSTINGS = 'postings'; @@ -170,6 +171,14 @@ class Highlight extends NamedBuilderBag return $this; } + /** + * {@inheritdoc} + */ + public function getType() + { + return 'highlight'; + } + /** * {@inheritdoc} */ @@ -182,6 +191,7 @@ class Highlight extends NamedBuilderBag 'fragment_size' => $this->fragmentSize, 'number_of_fragments' => $this->numberOfFragments, 'tags_schema' => $this->tagsSchema, + 'fields' => $this->getFields(), ] ); @@ -197,11 +207,21 @@ class Highlight extends NamedBuilderBag } } - /** @var NamedBuilderInterface $field */ - foreach ($this->all() as $field) { - $highlight['fields'][$field->getName()] = $field->toArray(); + return $highlight; + } + + /** + * Returns fields as array. + * + * @return array + */ + private function getFields() + { + $out = []; + foreach ($this->all() as $builder) { + $out = array_merge($out, [$builder->getName() => $builder->toArray()]); } - return $highlight; + return $out; } } -- GitLab