diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:31:33 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:31:33 -0400 |
commit | 150f94f051128f367bc89f6b7e5f57eb2a69fc62 (patch) | |
tree | 181f454813b310ee97385058c6c6f2e3f34d5fd8 /vendor/ruflin/elastica/lib/Elastica/Query.php | |
parent | 7e85254903c7c0cb49e381f16b18441ea7b058cc (diff) | |
parent | 80f7dc77d430774192b929d780f96260066df2ee (diff) |
Merge commit '80f7dc'
# Conflicts:
# extensions/ArchInterWiki.sql
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Query.php')
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Query.php | 420 |
1 files changed, 0 insertions, 420 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query.php b/vendor/ruflin/elastica/lib/Elastica/Query.php deleted file mode 100644 index 2f37f2ea..00000000 --- a/vendor/ruflin/elastica/lib/Elastica/Query.php +++ /dev/null @@ -1,420 +0,0 @@ -<?php - -namespace Elastica; -use Elastica\Aggregation\AbstractAggregation; -use Elastica\Exception\InvalidException; -use Elastica\Exception\NotImplementedException; -use Elastica\Facet\AbstractFacet; -use Elastica\Filter\AbstractFilter; -use Elastica\Query\AbstractQuery; -use Elastica\Query\MatchAll; -use Elastica\Query\QueryString; -use Elastica\Suggest\AbstractSuggest; -use Elastica\Suggest; - -/** - * Elastica query object - * - * Creates different types of queries - * - * @category Xodoa - * @package Elastica - * @author Nicolas Ruflin <spam@ruflin.com> - * @link http://www.elasticsearch.org/guide/reference/api/search/ - */ -class Query extends Param -{ - /** - * Params - * - * @var array Params - */ - protected $_params = array(); - - /** - * Suggest query or not - * - * @var int Suggest - */ - protected $_suggest = 0; - - /** - * Creates a query object - * - * @param array|\Elastica\Query\AbstractQuery $query OPTIONAL Query object (default = null) - */ - public function __construct($query = null) - { - if (is_array($query)) { - $this->setRawQuery($query); - } elseif ($query instanceof AbstractQuery) { - $this->setQuery($query); - } elseif ($query instanceof Suggest) { - $this->setSuggest($query); - } - } - - /** - * Transforms a string or an array to a query object - * - * If query is empty, - * - * @param mixed $query - * @throws \Elastica\Exception\NotImplementedException - * @return \Elastica\Query - */ - public static function create($query) - { - switch (true) { - case $query instanceof Query: - return $query; - case $query instanceof AbstractQuery: - return new self($query); - case $query instanceof AbstractFilter: - $newQuery = new self(); - $newQuery->setFilter($query); - - return $newQuery; - case empty($query): - return new self(new MatchAll()); - case is_array($query): - return new self($query); - case is_string($query): - return new self(new QueryString($query)); - case $query instanceof AbstractSuggest: - return new self(new Suggest($query)); - - case $query instanceof Suggest: - return new self($query); - - } - - // TODO: Implement queries without - throw new NotImplementedException(); - } - - /** - * Sets query as raw array. Will overwrite all already set arguments - * - * @param array $query Query array - * @return \Elastica\Query Query object - */ - public function setRawQuery(array $query) - { - $this->_params = $query; - - return $this; - } - - /** - * Sets the query - * - * @param \Elastica\Query\AbstractQuery $query Query object - * @return \Elastica\Query Query object - */ - public function setQuery(AbstractQuery $query) - { - return $this->setParam('query', $query->toArray()); - } - - /** - * Gets the query array - * - * @return array - **/ - public function getQuery() - { - return $this->getParam('query'); - } - - /** - * Set Filter - * - * @param \Elastica\Filter\AbstractFilter $filter Filter object - * @return \Elastica\Query Current object - */ - public function setFilter(AbstractFilter $filter) - { - return $this->setParam('filter', $filter->toArray()); - } - - /** - * Sets the start from which the search results should be returned - * - * @param int $from - * @return \Elastica\Query Query object - */ - public function setFrom($from) - { - return $this->setParam('from', $from); - } - - /** - * Sets sort arguments for the query - * Replaces existing values - * - * @param array $sortArgs Sorting arguments - * @return \Elastica\Query Query object - * @link http://www.elasticsearch.org/guide/reference/api/search/sort.html - */ - public function setSort(array $sortArgs) - { - return $this->setParam('sort', $sortArgs); - } - - /** - * Adds a sort param to the query - * - * @param mixed $sort Sort parameter - * @return \Elastica\Query Query object - * @link http://www.elasticsearch.org/guide/reference/api/search/sort.html - */ - public function addSort($sort) - { - return $this->addParam('sort', $sort); - } - - /** - * Sets highlight arguments for the query - * - * @param array $highlightArgs Set all highlight arguments - * @return \Elastica\Query Query object - * @link http://www.elasticsearch.org/guide/reference/api/search/highlighting.html - */ - public function setHighlight(array $highlightArgs) - { - return $this->setParam('highlight', $highlightArgs); - } - - /** - * Adds a highlight argument - * - * @param mixed $highlight Add highlight argument - * @return \Elastica\Query Query object - * @link http://www.elasticsearch.org/guide/reference/api/search/highlighting.html - */ - public function addHighlight($highlight) - { - return $this->addParam('highlight', $highlight); - } - - /** - * Sets maximum number of results for this query - * - * @param int $size OPTIONAL Maximal number of results for query (default = 10) - * @return \Elastica\Query Query object - */ - public function setSize($size = 10) - { - return $this->setParam('size', $size); - - } - - /** - * Alias for setSize - * - * @deprecated Use the setSize() method, this method will be removed in future releases - * @param int $limit OPTIONAL Maximal number of results for query (default = 10) - * @return \Elastica\Query Query object - */ - public function setLimit($limit = 10) - { - return $this->setSize($limit); - } - - /** - * Enables explain on the query - * - * @param bool $explain OPTIONAL Enabled or disable explain (default = true) - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/reference/api/search/explain.html - */ - public function setExplain($explain = true) - { - return $this->setParam('explain', $explain); - } - - /** - * Enables version on the query - * - * @param bool $version OPTIONAL Enabled or disable version (default = true) - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/reference/api/search/version.html - */ - public function setVersion($version = true) - { - return $this->setParam('version', $version); - } - - /** - * Sets the fields to be returned by the search - * - * @param array $fields Fields to be returned - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/reference/api/search/fields.html - */ - public function setFields(array $fields) - { - return $this->setParam('fields', $fields); - } - - /** - * Set script fields - * - * @param array|\Elastica\ScriptFields $scriptFields Script fields - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/reference/api/search/script-fields.html - */ - public function setScriptFields($scriptFields) - { - if (is_array($scriptFields)) { - $scriptFields = new ScriptFields($scriptFields); - } - - return $this->setParam('script_fields', $scriptFields->toArray()); - } - - /** - * Adds a Script to the query - * - * @param string $name - * @param \Elastica\Script $script Script object - * @return \Elastica\Query Query object - */ - public function addScriptField($name, Script $script) - { - $this->_params['script_fields'][$name] = $script->toArray(); - - return $this; - } - - /** - * Sets all facets for this query object. Replaces existing facets - * - * @param array $facets List of facet objects - * @return \Elastica\Query Query object - * @link http://www.elasticsearch.org/guide/reference/api/search/facets/ - */ - public function setFacets(array $facets) - { - $this->_params['facets'] = array(); - foreach ($facets as $facet) { - $this->addFacet($facet); - } - - return $this; - } - - /** - * Adds a Facet to the query - * - * @param \Elastica\Facet\AbstractFacet $facet Facet object - * @return \Elastica\Query Query object - */ - public function addFacet(AbstractFacet $facet) - { - $this->_params['facets'][$facet->getName()] = $facet->toArray(); - - return $this; - } - - /** - * Adds an Aggregation to the query - * - * @param AbstractAggregation $agg - * @return \Elastica\Query Query object - */ - public function addAggregation(AbstractAggregation $agg) - { - if (!array_key_exists('aggs', $this->_params)) { - $this->_params['aggs'] = array(); - } - $this->_params['aggs'][$agg->getName()] = $agg->toArray(); - return $this; - } - - /** - * Converts all query params to an array - * - * @return array Query array - */ - public function toArray() - { - if (!isset($this->_params['query']) && ($this->_suggest == 0)) { - $this->setQuery(new MatchAll()); - } - - if (isset($this->_params['facets']) && 0 === count($this->_params['facets'])) { - unset($this->_params['facets']); - } - - if (isset($this->_params['post_filter']) && 0 === count($this->_params['post_filter'])) { - unset($this->_params['post_filter']); - } - - return $this->_params; - } - - /** - * Allows filtering of documents based on a minimum score - * - * @param int $minScore Minimum score to filter documents by - * @throws \Elastica\Exception\InvalidException - * @return \Elastica\Query Query object - */ - public function setMinScore($minScore) - { - if (!is_numeric($minScore)) { - throw new InvalidException('has to be numeric param'); - } - - return $this->setParam('min_score', $minScore); - } - - /** - * Add a suggest term - * - * @param \Elastica\Suggest $suggest suggestion object - */ - public function setSuggest(Suggest $suggest) - { - $this->addParam(NULL, $suggest->toArray()); - $this->_suggest = 1; - } - - /** - * Add a Rescore - * - * @param \Elastica\Rescore\AbstractRescore $suggest suggestion object - */ - public function setRescore($rescore) - { - $this->setParam('rescore', $rescore->toArray()); - } - - /** - * Sets the _source field to be returned with every hit - * - * @param array $fields Fields to be returned - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/search-request-source-filtering.html - */ - public function setSource(array $fields) - { - return $this->setParam('_source', $fields); - } - - /** - * Sets post_filter argument for the query. The filter is applied after the query has executed - * @param array $post - * @return \Elastica\Query Current object - * @link http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_filtering_queries_and_aggregations.html#_post_filter - */ - public function setPostFilter(array $post) - { - return $this->setParam("post_filter", $post); - } -} - - - |