diff options
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php')
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php new file mode 100644 index 00000000..664d33a6 --- /dev/null +++ b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php @@ -0,0 +1,69 @@ +<?php +namespace Elastica\Facet; + +/** + * Implements the Geo Distance facet. + * + * @author Gerard A. Matthew <gerard.matthew@gmail.com> + * + * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-geo-distance-facet.html + * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead. + */ +class GeoDistance extends AbstractFacet +{ + /** + * Sets the ranges for the facet all at once. + * Sample ranges: + * array ( + * array('to' => 50), + * array('from' => 20, 'to' => 70), + * array('from' => 70, 'to' => 120), + * array('from' => 150) + * ). + * + * @param array $ranges Numerical array with range definitions. + * + * @return $this + */ + public function setRanges(array $ranges) + { + return $this->setParam('ranges', $ranges); + } + + /** + * Set the relative GeoPoint for the facet. + * + * @param string $typeField index type and field e.g foo.bar + * @param float $latitude + * @param float $longitude + * + * @return $this + */ + public function setGeoPoint($typeField, $latitude, $longitude) + { + return $this->setParam($typeField, array( + 'lat' => $latitude, + 'lon' => $longitude, + )); + } + + /** + * Creates the full facet definition, which includes the basic + * facet definition of the parent. + * + * @see \Elastica\Facet\AbstractFacet::toArray() + * + * @throws \Elastica\Exception\InvalidException When the right fields haven't been set. + * + * @return array + */ + public function toArray() + { + /* + * Set the geo_distance in the abstract as param. + */ + $this->_setFacetParam('geo_distance', $this->_params); + + return parent::toArray(); + } +} |