diff options
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Rescore')
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php | 36 | ||||
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php | 91 |
2 files changed, 127 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php b/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php new file mode 100644 index 00000000..0839424d --- /dev/null +++ b/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php @@ -0,0 +1,36 @@ +<?php +namespace Elastica\Rescore; + +use Elastica\Param; + +/** + * Abstract rescore object. Should be extended by all rescorers. + * + * @author Jason Hu <mjhu91@gmail.com> + * + * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-rescore.html + */ +abstract class AbstractRescore extends Param +{ + /** + * Overridden to return rescore as name. + * + * @return string name + */ + protected function _getBaseName() + { + return 'rescore'; + } + + /** + * Sets window_size. + * + * @param int $size + * + * @return $this + */ + public function setWindowSize($size) + { + return $this->setParam('window_size', $size); + } +} diff --git a/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php b/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php new file mode 100644 index 00000000..3b0a1071 --- /dev/null +++ b/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php @@ -0,0 +1,91 @@ +<?php +namespace Elastica\Rescore; + +use Elastica\Query as BaseQuery; + +/** + * Query Rescore. + * + * @author Jason Hu <mjhu91@gmail.com> + * + * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-rescore.html + */ +class Query extends AbstractRescore +{ + /** + * Constructor. + * + * @param string|\Elastica\Query\AbstractQuery $rescoreQuery + * @param string|\Elastica\Query\AbstractQuery $query + */ + public function __construct($query = null) + { + $this->setParam('query', array()); + $this->setRescoreQuery($query); + } + + /** + * Override default implementation so params are in the format + * expected by elasticsearch. + * + * @return array Rescore array + */ + public function toArray() + { + $data = $this->getParams(); + + if (!empty($this->_rawParams)) { + $data = array_merge($data, $this->_rawParams); + } + + return $data; + } + + /** + * Sets rescoreQuery object. + * + * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query + * + * @return $this + */ + public function setRescoreQuery($rescoreQuery) + { + $query = BaseQuery::create($rescoreQuery); + $data = $query->toArray(); + + $query = $this->getParam('query'); + $query['rescore_query'] = $data['query']; + + return $this->setParam('query', $query); + } + + /** + * Sets query_weight. + * + * @param float $weight + * + * @return $this + */ + public function setQueryWeight($weight) + { + $query = $this->getParam('query'); + $query['query_weight'] = $weight; + + return $this->setParam('query', $query); + } + + /** + * Sets rescore_query_weight. + * + * @param float $size + * + * @return $this + */ + public function setRescoreQueryWeight($weight) + { + $query = $this->getParam('query'); + $query['rescore_query_weight'] = $weight; + + return $this->setParam('query', $query); + } +} |