diff --git a/Filter/GeohashCellFilter.php b/Filter/GeohashCellFilter.php new file mode 100644 index 0000000000000000000000000000000000000000..9dd4d071883b4d755a9e2d676db66b9bd2599e36 --- /dev/null +++ b/Filter/GeohashCellFilter.php @@ -0,0 +1,65 @@ +<?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\Filter; + +use ONGR\ElasticsearchBundle\DSL\BuilderInterface; +use ONGR\ElasticsearchBundle\DSL\ParametersTrait; + +/** + * Represents Elasticsearch "Geohash Cell" filter. + */ +class GeohashCellFilter implements BuilderInterface +{ + use ParametersTrait; + + /** + * @var string + */ + private $field; + + /** + * @var mixed + */ + private $location; + + /** + * @param string $field + * @param mixed $location + * @param array $parameters + */ + public function __construct($field, $location, array $parameters = []) + { + $this->field = $field; + $this->location = $location; + + $this->setParameters($parameters); + } + + /** + * {@inheritdoc} + */ + public function getType() + { + return 'geohash_cell'; + } + + /** + * {@inheritdoc} + */ + public function toArray() + { + $query[$this->field] = $this->location; + $output = $this->processArray($query); + + return $output; + } +}