From ea98876f3082e5b3e529d1c8722ee563817db6f0 Mon Sep 17 00:00:00 2001 From: juliensantos87 <julien.santos87@gmail.com> Date: Fri, 20 Feb 2015 13:19:29 +0100 Subject: [PATCH] add has_child query --- Query/HasChildQuery.php | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Query/HasChildQuery.php diff --git a/Query/HasChildQuery.php b/Query/HasChildQuery.php new file mode 100644 index 0000000..876cedf --- /dev/null +++ b/Query/HasChildQuery.php @@ -0,0 +1,70 @@ +<?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\ElasticsearchBundle\DSL\Query; + +use ONGR\ElasticsearchBundle\DSL\BuilderInterface; +use ONGR\ElasticsearchBundle\DSL\ParametersTrait; + +/** + * Elasticsearch has_child query class. + */ +class HasChildQuery implements BuilderInterface +{ + use ParametersTrait; + + /** + * @var string + */ + private $type; + + /** + * @var BuilderInterface + */ + private $query; + + /** + * @param string $type + * @param BuilderInterface $query + * @param array $parameters + */ + public function __construct($type, BuilderInterface $query, array $parameters = []) + { + $this->type = $type; + $this->query = $query; + $this->setParameters($parameters); + } + + /** + * {@inheritdoc} + */ + public function getType() + { + return 'has_child'; + } + + /** + * {@inheritdoc} + */ + public function toArray() + { + $query = [ + 'type' => $this->type, + 'query' => [ + $this->query->getType() => $this->query->toArray(), + ], + ]; + + $output = $this->processArray($query); + + return $output; + } +} -- GitLab