summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php')
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php90
1 files changed, 90 insertions, 0 deletions
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..5041f3ed
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php
@@ -0,0 +1,90 @@
+<?php
+
+namespace Elastica\Rescore;
+
+use Elastica\Query as BaseQuery;
+
+/**
+ * Query Rescore
+ *
+ * @category Xodoa
+ * @package Elastica
+ * @author Jason Hu <mjhu91@gmail.com>
+ * @link http://www.elasticsearch.org/guide/reference/api/search/rescore/
+ */
+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 \Elastica\Query\Rescore
+ */
+ 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 \Elastica\Query\Rescore
+ */
+ 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 \Elastica\Query\Rescore
+ */
+ public function setRescoreQueryWeight($weight)
+ {
+ $query = $this->getParam('query');
+ $query['rescore_query_weight'] = $weight;
+
+ return $this->setParam('query', $query);
+ }
+} \ No newline at end of file