summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/lib/Elastica
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica')
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/AbstractUpdateAction.php142
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractAggregation.php37
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractSimpleAggregation.php22
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractTermsAggregation.php97
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Avg.php11
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Cardinality.php36
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/DateHistogram.php102
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/DateRange.php15
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/ExtendedStats.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Filter.php36
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Filters.php59
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/GeoDistance.php66
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/GeohashGrid.php41
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/GlobalAggregation.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Histogram.php42
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/IpRange.php38
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Max.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Min.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Missing.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Nested.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Percentiles.php59
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Range.php41
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/ReverseNested.php15
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/ScriptedMetric.php82
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/SignificantTerms.php27
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Stats.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Sum.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/Terms.php96
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/TopHits.php156
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Aggregation/ValueCount.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk.php115
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action.php45
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action/AbstractDocument.php54
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action/CreateDocument.php1
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action/DeleteDocument.php4
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action/IndexDocument.php7
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Action/UpdateDocument.php18
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/Response.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Bulk/ResponseSet.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Client.php312
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Cluster.php67
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Cluster/Health.php16
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Index.php13
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Shard.php13
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Cluster/Settings.php75
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection.php138
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/ConnectionPool.php122
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/CallbackStrategy.php51
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/RoundRobin.php24
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/Simple.php30
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyFactory.php45
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyInterface.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Document.php122
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/Response/ActionException.php11
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/ResponseException.php21
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/UdpException.php1
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/BulkException.php1
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/ClientException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Connection/GuzzleException.php9
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Connection/HttpException.php28
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Connection/MemcacheException.php13
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/Connection/ThriftException.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/ConnectionException.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/ElasticsearchException.php32
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/ExceptionInterface.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/InvalidException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/JSONParseException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/NotFoundException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/NotImplementedException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/PartialShardFailureException.php11
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/QueryBuilderException.php11
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php24
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Exception/RuntimeException.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/AbstractFacet.php56
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/DateHistogram.php30
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Filter.php14
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/GeoCluster.php36
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php33
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Histogram.php48
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Query.php14
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Range.php41
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Statistical.php25
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/Terms.php46
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Facet/TermsStats.php58
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/AbstractFilter.php32
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoDistance.php58
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoShape.php22
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/AbstractMulti.php34
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Bool.php143
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/BoolAnd.php8
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/BoolFilter.php133
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/BoolNot.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/BoolOr.php8
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Exists.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoBoundingBox.php24
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistance.php37
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistanceRange.php24
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoPolygon.php23
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapePreIndexed.php29
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapeProvided.php35
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/GeohashCell.php32
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/HasChild.php63
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/HasParent.php50
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Ids.php40
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Indices.php57
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Limit.php20
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/MatchAll.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Missing.php41
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Nested.php40
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/NumericRange.php8
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Prefix.php23
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Query.php25
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Range.php44
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Regexp.php62
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Script.php20
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Term.php26
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Terms.php75
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Filter/Type.php33
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Index.php219
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Index/Settings.php188
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Index/Stats.php27
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Index/Status.php46
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/JSON.php24
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Log.php31
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Multi/ResultSet.php39
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Multi/Search.php61
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Node.php77
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Node/Info.php78
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Node/Stats.php30
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Param.php69
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Percolator.php128
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query.php284
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/AbstractQuery.php4
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Bool.php89
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/BoolQuery.php111
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Boosting.php28
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Builder.php186
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Common.php92
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/ConstantScore.php30
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/DisMax.php29
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Filtered.php34
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/FunctionScore.php181
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Fuzzy.php47
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/FuzzyLikeThis.php96
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/HasChild.php34
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/HasParent.php35
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Ids.php46
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Image.php187
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Match.php154
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/MatchAll.php10
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrase.php13
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrasePrefix.php13
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/MoreLikeThis.php124
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/MultiMatch.php113
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Nested.php29
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Prefix.php25
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/QueryString.php141
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Range.php19
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Regexp.php40
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Simple.php17
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/SimpleQueryString.php56
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Term.php26
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Terms.php48
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/TopChildren.php25
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Query/Wildcard.php21
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder.php114
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL.php22
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Aggregation.php470
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Filter.php480
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Query.php586
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Suggest.php83
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Facade.php64
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version.php101
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version090.php97
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version100.php123
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version110.php131
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version120.php137
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version130.php142
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version140.php145
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version150.php14
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Request.php66
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php18
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php31
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Response.php77
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Result.php67
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/ResultSet.php172
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/ScanAndScroll.php148
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Script.php37
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/ScriptFields.php22
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Scroll.php174
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Search.php167
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/SearchableInterface.php22
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Snapshot.php101
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Status.php60
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest.php35
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/AbstractSuggest.php33
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/AbstractCandidateGenerator.php5
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/DirectGenerator.php77
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/Completion.php26
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/Phrase.php102
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Suggest/Term.php76
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Tool/CrossIndex.php160
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/AbstractTransport.php34
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Guzzle.php146
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Http.php58
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/HttpAdapter.php156
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Https.php9
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Memcache.php65
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Null.php39
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/NullTransport.php46
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Thrift.php53
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Type.php217
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Type/AbstractType.php57
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php135
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Util.php101
215 files changed, 9434 insertions, 4039 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/AbstractUpdateAction.php b/vendor/ruflin/elastica/lib/Elastica/AbstractUpdateAction.php
index 883284ae..468087af 100644
--- a/vendor/ruflin/elastica/lib/Elastica/AbstractUpdateAction.php
+++ b/vendor/ruflin/elastica/lib/Elastica/AbstractUpdateAction.php
@@ -1,13 +1,10 @@
<?php
-
namespace Elastica;
/**
* Base class for things that can be sent to the update api (Document and
* Script).
*
- * @category Xodoa
- * @package Elastica
* @author Nik Everett <nik9000@gmail.com>
*/
class AbstractUpdateAction extends Param
@@ -20,8 +17,9 @@ class AbstractUpdateAction extends Param
/**
* Sets the id of the document.
*
- * @param string $id
- * @return \Elastica\Document
+ * @param string $id
+ *
+ * @return $this
*/
public function setId($id)
{
@@ -29,7 +27,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Returns document id
+ * Returns document id.
*
* @return string|int Document id
*/
@@ -47,10 +45,11 @@ class AbstractUpdateAction extends Param
}
/**
- * Sets lifetime of document
+ * Sets lifetime of document.
*
- * @param string $ttl
- * @return \Elastica\Document
+ * @param string $ttl
+ *
+ * @return $this
*/
public function setTtl($ttl)
{
@@ -74,10 +73,11 @@ class AbstractUpdateAction extends Param
}
/**
- * Sets the document type name
+ * Sets the document type name.
+ *
+ * @param string $type Type name
*
- * @param string $type Type name
- * @return \Elastica\Document Current object
+ * @return $this
*/
public function setType($type)
{
@@ -85,14 +85,16 @@ class AbstractUpdateAction extends Param
$this->setIndex($type->getIndex());
$type = $type->getName();
}
+
return $this->setParam('_type', $type);
}
/**
- * Return document type name
+ * Return document type name.
*
- * @return string Document type name
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return string Document type name
*/
public function getType()
{
@@ -100,24 +102,27 @@ class AbstractUpdateAction extends Param
}
/**
- * Sets the document index name
+ * Sets the document index name.
+ *
+ * @param string $index Index name
*
- * @param string $index Index name
- * @return \Elastica\Document Current object
+ * @return $this
*/
public function setIndex($index)
{
if ($index instanceof Index) {
$index = $index->getName();
}
+
return $this->setParam('_index', $index);
}
/**
- * Get the document index name
+ * Get the document index name.
*
- * @return string Index name
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return string Index name
*/
public function getIndex()
{
@@ -125,11 +130,13 @@ class AbstractUpdateAction extends Param
}
/**
- * Sets the version of a document for use with optimistic concurrency control
+ * Sets the version of a document for use with optimistic concurrency control.
*
- * @param int $version Document version
- * @return \Elastica\Document Current object
- * @link http://www.elasticsearch.org/blog/2011/02/08/versioning.html
+ * @param int $version Document version
+ *
+ * @return $this
+ *
+ * @link https://www.elastic.co/blog/versioning
*/
public function setVersion($version)
{
@@ -137,7 +144,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Returns document version
+ * Returns document version.
*
* @return string|int Document version
*/
@@ -156,11 +163,11 @@ class AbstractUpdateAction extends Param
/**
* Sets the version_type of a document
- * Default in ES is internal, but you can set to external to use custom versioning
+ * Default in ES is internal, but you can set to external to use custom versioning.
+ *
+ * @param int $versionType Document version type
*
- * @param int $versionType Document version type
- * @return \Elastica\Document Current object
- * @link http://www.elasticsearch.org/guide/reference/api/index_.html
+ * @return $this
*/
public function setVersionType($versionType)
{
@@ -168,7 +175,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Returns document version type
+ * Returns document version type.
*
* @return string|int Document version type
*/
@@ -186,11 +193,13 @@ class AbstractUpdateAction extends Param
}
/**
- * Sets parent document id
+ * Sets parent document id.
+ *
+ * @param string|int $parent Parent document id
+ *
+ * @return $this
*
- * @param string|int $parent Parent document id
- * @return \Elastica\Document Current object
- * @link http://www.elasticsearch.org/guide/reference/mapping/parent-field.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-parent-field.html
*/
public function setParent($parent)
{
@@ -198,7 +207,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Returns the parent document id
+ * Returns the parent document id.
*
* @return string|int Parent document id
*/
@@ -216,10 +225,11 @@ class AbstractUpdateAction extends Param
}
/**
- * Set operation type
+ * Set operation type.
*
- * @param string $opType Only accept create
- * @return \Elastica\Document Current object
+ * @param string $opType Only accept create
+ *
+ * @return $this
*/
public function setOpType($opType)
{
@@ -227,7 +237,8 @@ class AbstractUpdateAction extends Param
}
/**
- * Get operation type
+ * Get operation type.
+ *
* @return string
*/
public function getOpType()
@@ -244,10 +255,11 @@ class AbstractUpdateAction extends Param
}
/**
- * Set percolate query param
+ * Set percolate query param.
*
- * @param string $value percolator filter
- * @return \Elastica\Document
+ * @param string $value percolator filter
+ *
+ * @return $this
*/
public function setPercolate($value = '*')
{
@@ -255,7 +267,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Get percolate parameter
+ * Get percolate parameter.
*
* @return string
*/
@@ -273,10 +285,11 @@ class AbstractUpdateAction extends Param
}
/**
- * Set routing query param
+ * Set routing query param.
*
- * @param string $value routing
- * @return \Elastica\Document
+ * @param string $value routing
+ *
+ * @return $this
*/
public function setRouting($value)
{
@@ -284,7 +297,7 @@ class AbstractUpdateAction extends Param
}
/**
- * Get routing parameter
+ * Get routing parameter.
*
* @return string
*/
@@ -303,18 +316,20 @@ class AbstractUpdateAction extends Param
/**
* @param array|string $fields
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setFields($fields)
{
if (is_array($fields)) {
$fields = implode(',', $fields);
}
+
return $this->setParam('_fields', (string) $fields);
}
/**
- * @return \Elastica\Document
+ * @return $this
*/
public function setFieldsSource()
{
@@ -339,7 +354,8 @@ class AbstractUpdateAction extends Param
/**
* @param int $num
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setRetryOnConflict($num)
{
@@ -364,7 +380,8 @@ class AbstractUpdateAction extends Param
/**
* @param string $timestamp
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setTimestamp($timestamp)
{
@@ -389,7 +406,8 @@ class AbstractUpdateAction extends Param
/**
* @param bool $refresh
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setRefresh($refresh = true)
{
@@ -414,7 +432,8 @@ class AbstractUpdateAction extends Param
/**
* @param string $timeout
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setTimeout($timeout)
{
@@ -439,7 +458,8 @@ class AbstractUpdateAction extends Param
/**
* @param string $timeout
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setConsistency($timeout)
{
@@ -464,7 +484,8 @@ class AbstractUpdateAction extends Param
/**
* @param string $timeout
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setReplication($timeout)
{
@@ -489,7 +510,8 @@ class AbstractUpdateAction extends Param
/**
* @param \Elastica\Document|array $data
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setUpsert($data)
{
@@ -516,8 +538,9 @@ class AbstractUpdateAction extends Param
}
/**
- * @param array $fields if empty array all options will be returned, field names can be either with underscored either without, i.e. _percolate, routing
- * @param bool $withUnderscore should option keys contain underscore prefix
+ * @param array $fields if empty array all options will be returned, field names can be either with underscored either without, i.e. _percolate, routing
+ * @param bool $withUnderscore should option keys contain underscore prefix
+ *
* @return array
*/
public function getOptions(array $fields = array(), $withUnderscore = false)
@@ -525,7 +548,7 @@ class AbstractUpdateAction extends Param
if (!empty($fields)) {
$data = array();
foreach ($fields as $field) {
- $key = '_' . ltrim($field, '_');
+ $key = '_'.ltrim($field, '_');
if ($this->hasParam($key) && '' !== (string) $this->getParam($key)) {
$data[$key] = $this->getParam($key);
}
@@ -539,6 +562,7 @@ class AbstractUpdateAction extends Param
unset($data[$key]);
}
}
+
return $data;
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractAggregation.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractAggregation.php
index 5ad5b17e..4cbb6b74 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractAggregation.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractAggregation.php
@@ -1,21 +1,18 @@
<?php
-
namespace Elastica\Aggregation;
-use Elastica\Param;
use Elastica\Exception\InvalidException;
+use Elastica\Param;
abstract class AbstractAggregation extends Param
{
/**
- * The name of this aggregation
- * @var string
+ * @var string The name of this aggregation
*/
protected $_name;
/**
- * Subaggregations belonging to this aggregation
- * @var array
+ * @var array Subaggregations belonging to this aggregation
*/
protected $_aggs = array();
@@ -28,16 +25,22 @@ abstract class AbstractAggregation extends Param
}
/**
- * Set the name of this aggregation
+ * Set the name of this aggregation.
+ *
* @param string $name
+ *
+ * @return $this
*/
public function setName($name)
{
$this->_name = $name;
+
+ return $this;
}
/**
- * Retrieve the name of this aggregation
+ * Retrieve the name of this aggregation.
+ *
* @return string
*/
public function getName()
@@ -46,7 +49,8 @@ abstract class AbstractAggregation extends Param
}
/**
- * Retrieve all subaggregations belonging to this aggregation
+ * Retrieve all subaggregations belonging to this aggregation.
+ *
* @return array
*/
public function getAggs()
@@ -55,18 +59,22 @@ abstract class AbstractAggregation extends Param
}
/**
- * Add a sub-aggregation
+ * Add a sub-aggregation.
+ *
* @param AbstractAggregation $aggregation
+ *
* @throws \Elastica\Exception\InvalidException
- * @return AbstractAggregation
+ *
+ * @return $this
*/
public function addAggregation(AbstractAggregation $aggregation)
{
- if(is_a($aggregation, 'Elastica\Aggregation\GlobalAggregation')) {
+ if ($aggregation instanceof GlobalAggregation) {
throw new InvalidException('Global aggregators can only be placed as top level aggregators');
}
$this->_aggs[$aggregation->getName()] = $aggregation->toArray();
+
return $this;
}
@@ -78,11 +86,12 @@ abstract class AbstractAggregation extends Param
$array = parent::toArray();
if (array_key_exists('global_aggregation', $array)) {
// compensate for class name GlobalAggregation
- $array = array('global' => new \stdClass);
+ $array = array('global' => new \stdClass());
}
if (sizeof($this->_aggs)) {
$array['aggs'] = $this->_aggs;
}
+
return $array;
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractSimpleAggregation.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractSimpleAggregation.php
index af7c1940..02a0fddb 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractSimpleAggregation.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractSimpleAggregation.php
@@ -1,16 +1,16 @@
<?php
-
namespace Elastica\Aggregation;
-
use Elastica\Script;
abstract class AbstractSimpleAggregation extends AbstractAggregation
{
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return AbstractSimpleAggregation
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -18,16 +18,20 @@ abstract class AbstractSimpleAggregation extends AbstractAggregation
}
/**
- * Set a script for this aggregation
+ * Set a script for this aggregation.
+ *
* @param string|Script $script
- * @return AbstractSimpleAggregation
+ *
+ * @return $this
*/
public function setScript($script)
{
if ($script instanceof Script) {
- $this->setParam('params', $script->getParams());
- $script = $script->getScript();
+ $params = array_merge($this->getParams(), $script->toArray());
+
+ return $this->setParams($params);
}
+
return $this->setParam('script', $script);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractTermsAggregation.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractTermsAggregation.php
new file mode 100644
index 00000000..57b56964
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/AbstractTermsAggregation.php
@@ -0,0 +1,97 @@
+<?php
+namespace Elastica\Aggregation;
+
+/**
+ * Class AbstractTermsAggergation.
+ */
+abstract class AbstractTermsAggregation extends AbstractSimpleAggregation
+{
+ /**
+ * Set the minimum number of documents in which a term must appear in order to be returned in a bucket.
+ *
+ * @param int $count
+ *
+ * @return $this
+ */
+ public function setMinimumDocumentCount($count)
+ {
+ return $this->setParam('min_doc_count', $count);
+ }
+
+ /**
+ * Filter documents to include based on a regular expression.
+ *
+ * @param string $pattern a regular expression
+ * @param string $flags Java Pattern flags
+ *
+ * @return $this
+ */
+ public function setInclude($pattern, $flags = null)
+ {
+ if (is_null($flags)) {
+ return $this->setParam('include', $pattern);
+ }
+
+ return $this->setParam('include', array(
+ 'pattern' => $pattern,
+ 'flags' => $flags,
+ ));
+ }
+
+ /**
+ * Filter documents to exclude based on a regular expression.
+ *
+ * @param string $pattern a regular expression
+ * @param string $flags Java Pattern flags
+ *
+ * @return $this
+ */
+ public function setExclude($pattern, $flags = null)
+ {
+ if (is_null($flags)) {
+ return $this->setParam('exclude', $pattern);
+ }
+
+ return $this->setParam('exclude', array(
+ 'pattern' => $pattern,
+ 'flags' => $flags,
+ ));
+ }
+
+ /**
+ * Sets the amount of terms to be returned.
+ *
+ * @param int $size The amount of terms to be returned.
+ *
+ * @return $this
+ */
+ public function setSize($size)
+ {
+ return $this->setParam('size', $size);
+ }
+
+ /**
+ * Sets how many terms the coordinating node will request from each shard.
+ *
+ * @param int $shard_size The amount of terms to be returned.
+ *
+ * @return $this
+ */
+ public function setShardSize($shard_size)
+ {
+ return $this->setParam('shard_size', $shard_size);
+ }
+
+ /**
+ * Instruct Elasticsearch to use direct field data or ordinals of the field values to execute this aggregation.
+ * The execution hint will be ignored if it is not applicable.
+ *
+ * @param string $hint map or ordinals
+ *
+ * @return $this
+ */
+ public function setExecutionHint($hint)
+ {
+ return $this->setParam('execution_hint', $hint);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Avg.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Avg.php
index 0d601910..abc2f7a1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Avg.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Avg.php
@@ -1,14 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
-
/**
- * Class Avg
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-avg-aggregation.html
+ * Class Avg.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-avg-aggregation.html
*/
class Avg extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Cardinality.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Cardinality.php
index 061ddafa..72b2e3aa 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Cardinality.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Cardinality.php
@@ -1,14 +1,38 @@
<?php
-
namespace Elastica\Aggregation;
-
/**
- * Class Cardinality
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html
+ * Class Cardinality.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html
*/
class Cardinality extends AbstractSimpleAggregation
{
+ /**
+ * @param int $precisionThreshold
+ *
+ * @return $this
+ */
+ public function setPrecisionThreshold($precisionThreshold)
+ {
+ if (!is_int($precisionThreshold)) {
+ throw new \InvalidArgumentException('precision_threshold only supports integer values');
+ }
+
+ return $this->setParam('precision_threshold', $precisionThreshold);
+ }
+
+ /**
+ * @param bool $rehash
+ *
+ * @return $this
+ */
+ public function setRehash($rehash)
+ {
+ if (!is_bool($rehash)) {
+ throw new \InvalidArgumentException('rehash only supports boolean values');
+ }
-}
+ return $this->setParam('rehash', $rehash);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateHistogram.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateHistogram.php
index 889fa429..8636f34c 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateHistogram.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateHistogram.php
@@ -1,82 +1,130 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class DateHistogram
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-datehistogram-aggregation.html
+ * Class DateHistogram.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html
*/
class DateHistogram extends Histogram
{
/**
- * Set pre-rounding based on interval
+ * Set pre-rounding based on interval.
+ *
+ * @deprecated Option "pre_zone" is deprecated as of ES 1.5. Use "time_zone" instead
+ *
* @param string $preZone
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setPreZone($preZone)
{
- return $this->setParam("pre_zone", $preZone);
+ return $this->setParam('pre_zone', $preZone);
}
/**
- * Set post-rounding based on interval
+ * Set post-rounding based on interval.
+ *
+ * @deprecated Option "post_zone" is deprecated as of ES 1.5. Use "time_zone" instead
+ *
* @param string $postZone
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setPostZone($postZone)
{
- return $this->setParam("post_zone", $postZone);
+ return $this->setParam('post_zone', $postZone);
+ }
+
+ /**
+ * Set time_zone option.
+ *
+ * @param string
+ *
+ * @return $this
+ */
+ public function setTimezone($timezone)
+ {
+ return $this->setParam('time_zone', $timezone);
}
/**
- * Set pre-zone adjustment for larger time intervals (day and above)
+ * Set pre-zone adjustment for larger time intervals (day and above).
+ *
+ * @deprecated Option "pre_zone_adjust_large_interval" is deprecated as of ES 1.5
+ *
* @param string $adjust
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setPreZoneAdjustLargeInterval($adjust)
{
- return $this->setParam("pre_zone_adjust_large_interval", $adjust);
+ return $this->setParam('pre_zone_adjust_large_interval', $adjust);
}
/**
- * Adjust for granularity of date data
+ * Adjust for granularity of date data.
+ *
* @param int $factor set to 1000 if date is stored in seconds rather than milliseconds
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setFactor($factor)
{
- return $this->setParam("factor", $factor);
+ return $this->setParam('factor', $factor);
}
/**
- * Set the offset for pre-rounding
+ * Set the offset for pre-rounding.
+ *
+ * @deprecated Option "pre_offset" is deprecated as of ES 1.5. Use "offset" instead
+ *
* @param string $offset "1d", for example
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setPreOffset($offset)
{
- return $this->setParam("pre_offset", $offset);
+ return $this->setParam('pre_offset', $offset);
}
/**
- * Set the offset for post-rounding
+ * Set the offset for post-rounding.
+ *
+ * @deprecated Option "post_offset" is deprecated as of ES 1.5. Use "offset" instead
+ *
* @param string $offset "1d", for example
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setPostOffset($offset)
{
- return $this->setParam("post_offset", $offset);
+ return $this->setParam('post_offset', $offset);
+ }
+
+ /**
+ * Set offset option.
+ *
+ * @param string
+ *
+ * @return $this
+ */
+ public function setOffset($offset)
+ {
+ return $this->setParam('offset', $offset);
}
/**
- * Set the format for returned bucket key_as_string values
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-daterange-aggregation.html#date-format-pattern
+ * Set the format for returned bucket key_as_string values.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregations-bucket-daterange-aggregation.html#date-format-pattern
+ *
* @param string $format see link for formatting options
- * @return DateHistogram
+ *
+ * @return $this
*/
public function setFormat($format)
{
- return $this->setParam("format", $format);
+ return $this->setParam('format', $format);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateRange.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateRange.php
index 37aca87b..deb5881d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateRange.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/DateRange.php
@@ -1,21 +1,22 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class DateRange
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-daterange-aggregation.html
+ * Class DateRange.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html
*/
class DateRange extends Range
{
/**
- * Set the formatting for the returned date values
+ * Set the formatting for the returned date values.
+ *
* @param string $format see documentation for formatting options
- * @return Range
+ *
+ * @return $this
*/
public function setFormat($format)
{
return $this->setParam('format', $format);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ExtendedStats.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ExtendedStats.php
index 4aef8a32..2b108bd1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ExtendedStats.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ExtendedStats.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class ExtendedStats
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-extendedstats-aggregation.html
+ * Class ExtendedStats.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-extendedstats-aggregation.html
*/
class ExtendedStats extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filter.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filter.php
index c2326ffe..fc83419e 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filter.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filter.php
@@ -1,25 +1,38 @@
<?php
-
namespace Elastica\Aggregation;
-
use Elastica\Filter\AbstractFilter;
/**
- * Class Filter
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-filter-aggregation.html
+ * Class Filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html
*/
class Filter extends AbstractAggregation
{
/**
- * Set the filter for this aggregation
+ * @param string $name
+ * @param AbstractFilter $filter
+ */
+ public function __construct($name, AbstractFilter $filter = null)
+ {
+ parent::__construct($name);
+
+ if ($filter !== null) {
+ $this->setFilter($filter);
+ }
+ }
+
+ /**
+ * Set the filter for this aggregation.
+ *
* @param AbstractFilter $filter
- * @return Filter
+ *
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
- return $this->setParam("filter", $filter->toArray());
+ return $this->setParam('filter', $filter->toArray());
}
/**
@@ -28,14 +41,13 @@ class Filter extends AbstractAggregation
public function toArray()
{
$array = array(
- "filter" => $this->getParam("filter")
+ 'filter' => $this->getParam('filter'),
);
- if($this->_aggs)
- {
+ if ($this->_aggs) {
$array['aggs'] = $this->_aggs;
}
return $array;
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filters.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filters.php
new file mode 100644
index 00000000..e0fbf060
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Filters.php
@@ -0,0 +1,59 @@
+<?php
+namespace Elastica\Aggregation;
+
+use Elastica\Filter\AbstractFilter;
+
+/**
+ * Class Filters.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html
+ */
+class Filters extends AbstractAggregation
+{
+ /**
+ * Add a filter.
+ *
+ * If a name is given, it will be added as a key, otherwise considered as an anonymous filter
+ *
+ * @param AbstractFilter $filter
+ * @param string $name
+ *
+ * @return $this
+ */
+ public function addFilter(AbstractFilter $filter, $name = '')
+ {
+ if (empty($name)) {
+ $filterArray[] = $filter->toArray();
+ } else {
+ $filterArray[$name] = $filter->toArray();
+ }
+
+ return $this->addParam('filters', $filterArray);
+ }
+
+ /**
+ * @return array
+ */
+ public function toArray()
+ {
+ $array = array();
+ $filters = $this->getParam('filters');
+
+ foreach ($filters as $filter) {
+ // Detect between anonymous filters and named ones
+ $key = key($filter);
+
+ if (is_string($key)) {
+ $array['filters']['filters'][$key] = current($filter);
+ } else {
+ $array['filters']['filters'][] = current($filter);
+ }
+ }
+
+ if ($this->_aggs) {
+ $array['aggs'] = $this->_aggs;
+ }
+
+ return $array;
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeoDistance.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeoDistance.php
index 76c871ea..c50018a0 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeoDistance.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeoDistance.php
@@ -1,23 +1,22 @@
<?php
-
namespace Elastica\Aggregation;
use Elastica\Exception\InvalidException;
/**
- * Class GeoDistance
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-geodistance-aggregation.html
+ * Class GeoDistance.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geodistance-aggregation.html
*/
class GeoDistance extends AbstractAggregation
{
- const DISTANCE_TYPE_SLOPPY_ARC = "sloppy_arc";
- const DISTANCE_TYPE_ARC = "arc";
- const DISTANCE_TYPE_PLANE = "plane";
+ const DISTANCE_TYPE_SLOPPY_ARC = 'sloppy_arc';
+ const DISTANCE_TYPE_ARC = 'arc';
+ const DISTANCE_TYPE_PLANE = 'plane';
/**
- * @param string $name the name if this aggregation
- * @param string $field the field on which to perform this aggregation
+ * @param string $name the name if this aggregation
+ * @param string $field the field on which to perform this aggregation
* @param string|array $origin the point from which distances will be calculated
*/
public function __construct($name, $field, $origin)
@@ -27,9 +26,11 @@ class GeoDistance extends AbstractAggregation
}
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return GeoDistance
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -37,54 +38,67 @@ class GeoDistance extends AbstractAggregation
}
/**
- * Set the origin point from which distances will be calculated
+ * Set the origin point from which distances will be calculated.
+ *
* @param string|array $origin valid formats are array("lat" => 52.3760, "lon" => 4.894), "52.3760, 4.894", and array(4.894, 52.3760)
- * @return GeoDistance
+ *
+ * @return $this
*/
public function setOrigin($origin)
{
- return $this->setParam("origin", $origin);
+ return $this->setParam('origin', $origin);
}
/**
- * Add a distance range to this aggregation
+ * Add a distance range to this aggregation.
+ *
* @param int $fromValue a distance
- * @param int $toValue a distance
- * @return GeoDistance
+ * @param int $toValue a distance
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function addRange($fromValue = null, $toValue = null)
{
if (is_null($fromValue) && is_null($toValue)) {
- throw new InvalidException("Either fromValue or toValue must be set. Both cannot be null.");
+ throw new InvalidException('Either fromValue or toValue must be set. Both cannot be null.');
}
+
$range = array();
+
if (!is_null($fromValue)) {
$range['from'] = $fromValue;
}
+
if (!is_null($toValue)) {
$range['to'] = $toValue;
}
- return $this->addParam("ranges", $range);
+
+ return $this->addParam('ranges', $range);
}
/**
- * Set the unit of distance measure for this aggregation
+ * Set the unit of distance measure for this aggregation.
+ *
* @param string $unit defaults to km
- * @return GeoDistance
+ *
+ * @return $this
*/
public function setUnit($unit)
{
- return $this->setParam("unit", $unit);
+ return $this->setParam('unit', $unit);
}
/**
- * Set the method by which distances will be calculated
+ * Set the method by which distances will be calculated.
+ *
* @param string $distanceType see DISTANCE_TYPE_* constants for options. Defaults to sloppy_arc.
- * @return GeoDistance
+ *
+ * @return $this
*/
public function setDistanceType($distanceType)
{
- return $this->setParam("distance_type", $distanceType);
+ return $this->setParam('distance_type', $distanceType);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeohashGrid.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeohashGrid.php
index 840198c3..e7a40471 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeohashGrid.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GeohashGrid.php
@@ -1,16 +1,15 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class GeohashGrid
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-geohashgrid-aggregation.html
+ * Class GeohashGrid.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html
*/
class GeohashGrid extends AbstractAggregation
{
/**
- * @param string $name the name of this aggregation
+ * @param string $name the name of this aggregation
* @param string $field the field on which to perform this aggregation
*/
public function __construct($name, $field)
@@ -20,9 +19,11 @@ class GeohashGrid extends AbstractAggregation
}
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return GeohashGrid
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -30,32 +31,38 @@ class GeohashGrid extends AbstractAggregation
}
/**
- * Set the precision for this aggregation
+ * Set the precision for this aggregation.
+ *
* @param int $precision an integer between 1 and 12, inclusive. Defaults to 5.
- * @return GeohashGrid
+ *
+ * @return $this
*/
public function setPrecision($precision)
{
- return $this->setParam("precision", $precision);
+ return $this->setParam('precision', $precision);
}
/**
- * Set the maximum number of buckets to return
+ * Set the maximum number of buckets to return.
+ *
* @param int $size defaults to 10,000
- * @return GeohashGrid
+ *
+ * @return $this
*/
public function setSize($size)
{
- return $this->setParam("size", $size);
+ return $this->setParam('size', $size);
}
/**
- * Set the number of results returned from each shard
+ * Set the number of results returned from each shard.
+ *
* @param int $shardSize
- * @return GeohashGrid
+ *
+ * @return $this
*/
public function setShardSize($shardSize)
{
- return $this->setParam("shard_size", $shardSize);
+ return $this->setParam('shard_size', $shardSize);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GlobalAggregation.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GlobalAggregation.php
index 72b56880..523844d2 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/GlobalAggregation.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/GlobalAggregation.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class GlobalAggregation
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-global-aggregation.html
+ * Class GlobalAggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-global-aggregation.html
*/
class GlobalAggregation extends AbstractAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Histogram.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Histogram.php
index 26fa7c44..79a8e517 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Histogram.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Histogram.php
@@ -1,18 +1,17 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Histogram
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-histogram-aggregation.html
+ * Class Histogram.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-histogram-aggregation.html
*/
class Histogram extends AbstractSimpleAggregation
{
/**
- * @param string $name the name of this aggregation
- * @param string $field the name of the field on which to perform the aggregation
- * @param int $interval the interval by which documents will be bucketed
+ * @param string $name the name of this aggregation
+ * @param string $field the name of the field on which to perform the aggregation
+ * @param int $interval the interval by which documents will be bucketed
*/
public function __construct($name, $field, $interval)
{
@@ -21,35 +20,40 @@ class Histogram extends AbstractSimpleAggregation
$this->setInterval($interval);
}
-
/**
- * Set the interval by which documents will be bucketed
+ * Set the interval by which documents will be bucketed.
+ *
* @param int $interval
- * @return Histogram
+ *
+ * @return $this
*/
public function setInterval($interval)
{
- return $this->setParam("interval", $interval);
+ return $this->setParam('interval', $interval);
}
/**
- * Set the bucket sort order
- * @param string $order "_count", "_term", or the name of a sub-aggregation or sub-aggregation response field
+ * Set the bucket sort order.
+ *
+ * @param string $order "_count", "_term", or the name of a sub-aggregation or sub-aggregation response field
* @param string $direction "asc" or "desc"
- * @return Histogram
+ *
+ * @return $this
*/
public function setOrder($order, $direction)
{
- return $this->setParam("order", array($order => $direction));
+ return $this->setParam('order', array($order => $direction));
}
/**
- * Set the minimum number of documents which must fall into a bucket in order for the bucket to be returned
+ * Set the minimum number of documents which must fall into a bucket in order for the bucket to be returned.
+ *
* @param int $count set to 0 to include empty buckets
- * @return Histogram
+ *
+ * @return $this
*/
public function setMinimumDocumentCount($count)
{
- return $this->setParam("min_doc_count", $count);
+ return $this->setParam('min_doc_count', $count);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/IpRange.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/IpRange.php
index 18e60bfb..7a4ef7c8 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/IpRange.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/IpRange.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Aggregation;
-
use Elastica\Exception\InvalidException;
/**
- * Class IpRange
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-iprange-aggregation.html
+ * Class IpRange.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-iprange-aggregation.html
*/
class IpRange extends AbstractAggregation
{
/**
- * @param string $name the name of this aggregation
+ * @param string $name the name of this aggregation
* @param string $field the field on which to perform this aggregation
*/
public function __construct($name, $field)
@@ -23,9 +21,11 @@ class IpRange extends AbstractAggregation
}
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return IpRange
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -33,16 +33,19 @@ class IpRange extends AbstractAggregation
}
/**
- * Add an ip range to this aggregation
+ * Add an ip range to this aggregation.
+ *
* @param string $fromValue a valid ipv4 address. Low end of this range, exclusive (greater than)
- * @param string $toValue a valid ipv4 address. High end of this range, exclusive (less than)
- * @return IpRange
+ * @param string $toValue a valid ipv4 address. High end of this range, exclusive (less than)
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function addRange($fromValue = null, $toValue = null)
{
if (is_null($fromValue) && is_null($toValue)) {
- throw new InvalidException("Either fromValue or toValue must be set. Both cannot be null.");
+ throw new InvalidException('Either fromValue or toValue must be set. Both cannot be null.');
}
$range = array();
if (!is_null($fromValue)) {
@@ -51,16 +54,19 @@ class IpRange extends AbstractAggregation
if (!is_null($toValue)) {
$range['to'] = $toValue;
}
+
return $this->addParam('ranges', $range);
}
/**
- * Add an ip range in the form of a CIDR mask
+ * Add an ip range in the form of a CIDR mask.
+ *
* @param string $mask a valid CIDR mask
- * @return IpRange
+ *
+ * @return $this
*/
public function addMaskRange($mask)
{
- return $this->addParam("ranges", array("mask" => $mask));
+ return $this->addParam('ranges', array('mask' => $mask));
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Max.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Max.php
index 25031b04..fc0294ca 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Max.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Max.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Max
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-max-aggregation.html
+ * Class Max.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-max-aggregation.html
*/
class Max extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Min.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Min.php
index 60aabb56..d5c5c31b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Min.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Min.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Min
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-min-aggregation.html
+ * Class Min.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-min-aggregation.html
*/
class Min extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Missing.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Missing.php
index b882aba0..11a6bdf9 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Missing.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Missing.php
@@ -1,16 +1,15 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Missing
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-missing-aggregation.html
+ * Class Missing.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-missing-aggregation.html
*/
class Missing extends AbstractAggregation
{
/**
- * @param string $name the name of this aggregation
+ * @param string $name the name of this aggregation
* @param string $field the field on which to perform this aggregation
*/
public function __construct($name, $field)
@@ -20,12 +19,14 @@ class Missing extends AbstractAggregation
}
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return Missing
+ *
+ * @return $this
*/
public function setField($field)
{
return $this->setParam('field', $field);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Nested.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Nested.php
index afbb8373..76407bc8 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Nested.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Nested.php
@@ -1,11 +1,10 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Nested
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-nested-aggregation.html
+ * Class Nested.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-nested-aggregation.html
*/
class Nested extends AbstractAggregation
{
@@ -20,12 +19,14 @@ class Nested extends AbstractAggregation
}
/**
- * Set the nested path for this aggregation
+ * Set the nested path for this aggregation.
+ *
* @param string $path
- * @return Nested
+ *
+ * @return $this
*/
public function setPath($path)
{
- return $this->setParam("path", $path);
+ return $this->setParam('path', $path);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Percentiles.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Percentiles.php
new file mode 100644
index 00000000..22079634
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Percentiles.php
@@ -0,0 +1,59 @@
+<?php
+namespace Elastica\Aggregation;
+
+/**
+ * Class Percentiles.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-aggregation.html
+ */
+class Percentiles extends AbstractSimpleAggregation
+{
+ /**
+ * @param string $name the name of this aggregation
+ * @param string $field the field on which to perform this aggregation
+ */
+ public function __construct($name, $field = null)
+ {
+ parent::__construct($name);
+
+ if (!is_null($field)) {
+ $this->setField($field);
+ }
+ }
+
+ /**
+ * Set compression parameter.
+ *
+ * @param float $value
+ *
+ * @return $this
+ */
+ public function setCompression($value)
+ {
+ return $this->setParam('compression', (float) $value);
+ }
+
+ /**
+ * Set which percents must be returned.
+ *
+ * @param float[] $percents
+ *
+ * @return $this
+ */
+ public function setPercents(array $percents)
+ {
+ return $this->setParam('percents', $percents);
+ }
+
+ /**
+ * Add yet another percent to result.
+ *
+ * @param float $percent
+ *
+ * @return $this
+ */
+ public function addPercent($percent)
+ {
+ return $this->addParam('percents', (float) $percent);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Range.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Range.php
index ab70c5e4..becafb28 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Range.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Range.php
@@ -1,45 +1,58 @@
<?php
namespace Elastica\Aggregation;
-
use Elastica\Exception\InvalidException;
/**
- * Class Range
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-range-aggregation.html
+ * Class Range.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html
*/
class Range extends AbstractSimpleAggregation
{
/**
- * Add a range to this aggregation
- * @param int|float $fromValue low end of this range, exclusive (greater than)
- * @param int|float $toValue high end of this range, exclusive (less than)
- * @return Range
+ * Add a range to this aggregation.
+ *
+ * @param int|float $fromValue low end of this range, exclusive (greater than or equal to)
+ * @param int|float $toValue high end of this range, exclusive (less than)
+ * @param string $key customized key value
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
- public function addRange($fromValue = null, $toValue = null)
+ public function addRange($fromValue = null, $toValue = null, $key = null)
{
if (is_null($fromValue) && is_null($toValue)) {
- throw new InvalidException("Either fromValue or toValue must be set. Both cannot be null.");
+ throw new InvalidException('Either fromValue or toValue must be set. Both cannot be null.');
}
+
$range = array();
+
if (!is_null($fromValue)) {
$range['from'] = $fromValue;
}
+
if (!is_null($toValue)) {
$range['to'] = $toValue;
}
+
+ if (!is_null($key)) {
+ $range['key'] = $key;
+ }
+
return $this->addParam('ranges', $range);
}
/**
- * If set to true, a unique string key will be associated with each bucket, and ranges will be returned as an associative array
+ * If set to true, a unique string key will be associated with each bucket, and ranges will be returned as an associative array.
+ *
* @param bool $keyed
- * @return Range
+ *
+ * @return $this
*/
public function setKeyedResponse($keyed = true)
{
- return $this->setParam('keyed', (bool)$keyed);
+ return $this->setParam('keyed', (bool) $keyed);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ReverseNested.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ReverseNested.php
index d4056f13..5216ae85 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ReverseNested.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ReverseNested.php
@@ -1,12 +1,10 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Reversed Nested Aggregation
+ * Reversed Nested Aggregation.
*
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-reverse-nested-aggregation.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-reverse-nested-aggregation.html
*/
class ReverseNested extends AbstractAggregation
{
@@ -24,14 +22,15 @@ class ReverseNested extends AbstractAggregation
}
/**
- * Set the nested path for this aggregation
+ * Set the nested path for this aggregation.
*
* @param string $path
- * @return ReverseNested
+ *
+ * @return $this
*/
public function setPath($path)
{
- return $this->setParam("path", $path);
+ return $this->setParam('path', $path);
}
/**
@@ -43,7 +42,7 @@ class ReverseNested extends AbstractAggregation
// ensure we have an object for the reverse_nested key.
// if we don't have a path, then this would otherwise get encoded as an empty array, which is invalid.
- $array['reverse_nested'] = (object)$array['reverse_nested'];
+ $array['reverse_nested'] = (object) $array['reverse_nested'];
return $array;
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ScriptedMetric.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ScriptedMetric.php
new file mode 100644
index 00000000..3e51f056
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ScriptedMetric.php
@@ -0,0 +1,82 @@
+<?php
+namespace Elastica\Aggregation;
+
+/**
+ * Class ScriptedMetric.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html
+ */
+class ScriptedMetric extends AbstractAggregation
+{
+ /**
+ * @param string $name the name if this aggregation
+ * @param string|null $initScript Executed prior to any collection of documents
+ * @param string|null $mapScript Executed once per document collected
+ * @param string|null $combineScript Executed once on each shard after document collection is complete
+ * @param string|null $reduceScript Executed once on the coordinating node after all shards have returned their results
+ */
+ public function __construct($name, $initScript = null, $mapScript = null, $combineScript = null, $reduceScript = null)
+ {
+ parent::__construct($name);
+ if ($initScript) {
+ $this->setInitScript($initScript);
+ }
+ if ($mapScript) {
+ $this->setMapScript($mapScript);
+ }
+ if ($combineScript) {
+ $this->setCombineScript($combineScript);
+ }
+ if ($reduceScript) {
+ $this->setReduceScript($reduceScript);
+ }
+ }
+
+ /**
+ * Set the field for this aggregation.
+ *
+ * @param string $script the name of the document field on which to perform this aggregation
+ *
+ * @return $this
+ */
+ public function setCombineScript($script)
+ {
+ return $this->setParam('combine_script', $script);
+ }
+
+ /**
+ * Set the field for this aggregation.
+ *
+ * @param string $script the name of the document field on which to perform this aggregation
+ *
+ * @return $this
+ */
+ public function setInitScript($script)
+ {
+ return $this->setParam('init_script', $script);
+ }
+
+ /**
+ * Set the field for this aggregation.
+ *
+ * @param string $script the name of the document field on which to perform this aggregation
+ *
+ * @return $this
+ */
+ public function setMapScript($script)
+ {
+ return $this->setParam('map_script', $script);
+ }
+
+ /**
+ * Set the field for this aggregation.
+ *
+ * @param string $script the name of the document field on which to perform this aggregation
+ *
+ * @return $this
+ */
+ public function setReduceScript($script)
+ {
+ return $this->setParam('reduce_script', $script);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/SignificantTerms.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/SignificantTerms.php
new file mode 100644
index 00000000..fa394791
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/SignificantTerms.php
@@ -0,0 +1,27 @@
+<?php
+namespace Elastica\Aggregation;
+
+use Elastica\Filter\AbstractFilter;
+
+/**
+ * Class SignificantTerms.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html
+ */
+class SignificantTerms extends AbstractTermsAggregation
+{
+ /**
+ * The default source of statistical information for background term frequencies is the entire index and this scope can
+ * be narrowed through the use of a background_filter to focus in on significant terms within a narrower context.
+ *
+ * @param AbstractFilter $filter
+ *
+ * @return $this
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html#_custom_background_context
+ */
+ public function setBackgroundFilter(AbstractFilter $filter)
+ {
+ return $this->setParam('background_filter', $filter->toArray());
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Stats.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Stats.php
index 18c903e9..f512628c 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Stats.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Stats.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Stats
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-stats-aggregation.html
+ * Class Stats.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-stats-aggregation.html
*/
class Stats extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Sum.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Sum.php
index 4d1ef4de..5172a684 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Sum.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Sum.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Sum
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-sum-aggregation.html
+ * Class Sum.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-sum-aggregation.html
*/
class Sum extends AbstractSimpleAggregation
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Terms.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Terms.php
index 9ede855c..8d0d6bef 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/Terms.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/Terms.php
@@ -1,97 +1,23 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class Terms
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-bucket-terms-aggregation.html
+ * Class Terms.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
*/
-class Terms extends AbstractSimpleAggregation
+class Terms extends AbstractTermsAggregation
{
/**
- * Set the bucket sort order
- * @param string $order "_count", "_term", or the name of a sub-aggregation or sub-aggregation response field
+ * Set the bucket sort order.
+ *
+ * @param string $order "_count", "_term", or the name of a sub-aggregation or sub-aggregation response field
* @param string $direction "asc" or "desc"
- * @return Terms
+ *
+ * @return $this
*/
public function setOrder($order, $direction)
{
- return $this->setParam("order", array($order => $direction));
- }
-
- /**
- * Set the minimum number of documents in which a term must appear in order to be returned in a bucket
- * @param int $count
- * @return Terms
- */
- public function setMinimumDocumentCount($count)
- {
- return $this->setParam("min_doc_count", $count);
- }
-
- /**
- * Filter documents to include based on a regular expression
- * @param string $pattern a regular expression
- * @param string $flags Java Pattern flags
- * @return Terms
- */
- public function setInclude($pattern, $flags = null)
- {
- if (is_null($flags)) {
- return $this->setParam("include", $pattern);
- }
- return $this->setParam("include", array(
- "pattern" => $pattern,
- "flags" => $flags
- ));
- }
-
- /**
- * Filter documents to exclude based on a regular expression
- * @param string $pattern a regular expression
- * @param string $flags Java Pattern flags
- * @return Terms
- */
- public function setExclude($pattern, $flags = null)
- {
- if (is_null($flags)) {
- return $this->setParam("exclude", $pattern);
- }
- return $this->setParam("exclude", array(
- "pattern" => $pattern,
- "flags" => $flags
- ));
- }
-
- /**
- * Sets the amount of terms to be returned.
- * @param int $size The amount of terms to be returned.
- * @return \Elastica\Aggregation\Terms
- */
- public function setSize($size)
- {
- return $this->setParam('size', $size);
- }
-
- /**
- * Sets how many terms the coordinating node will request from each shard.
- * @param int $shard_size The amount of terms to be returned.
- * @return \Elastica\Aggregation\Terms
- */
- public function setShardSize($shard_size)
- {
- return $this->setParam('shard_size', $shard_size);
- }
-
- /**
- * Instruct Elasticsearch to use direct field data or ordinals of the field values to execute this aggregation.
- * The execution hint will be ignored if it is not applicable.
- * @param string $hint map or ordinals
- * @return Terms
- */
- public function setExecutionHint($hint)
- {
- return $this->setParam("execution_hint", $hint);
+ return $this->setParam('order', array($order => $direction));
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/TopHits.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/TopHits.php
new file mode 100644
index 00000000..91a48a48
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/TopHits.php
@@ -0,0 +1,156 @@
+<?php
+namespace Elastica\Aggregation;
+
+use Elastica\Script;
+use Elastica\ScriptFields;
+
+/**
+ * Class TopHits.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html
+ */
+class TopHits extends AbstractAggregation
+{
+ /**
+ * @return array
+ */
+ public function toArray()
+ {
+ $array = parent::toArray();
+
+ // if there are no params, it's ok, but ES will throw exception if json
+ // will be like {"top_hits":[]} instead of {"top_hits":{}}
+ if (empty($array['top_hits'])) {
+ $array['top_hits'] = new \stdClass();
+ }
+
+ return $array;
+ }
+
+ /**
+ * The maximum number of top matching hits to return per bucket. By default the top three matching hits are returned.
+ *
+ * @param int $size
+ *
+ * @return $this
+ */
+ public function setSize($size)
+ {
+ return $this->setParam('size', (int) $size);
+ }
+
+ /**
+ * The offset from the first result you want to fetch.
+ *
+ * @param int $from
+ *
+ * @return $this
+ */
+ public function setFrom($from)
+ {
+ return $this->setParam('from', (int) $from);
+ }
+
+ /**
+ * How the top matching hits should be sorted. By default the hits are sorted by the score of the main query.
+ *
+ * @param array $sortArgs
+ *
+ * @return $this
+ */
+ public function setSort(array $sortArgs)
+ {
+ return $this->setParam('sort', $sortArgs);
+ }
+
+ /**
+ * Allows to control how the _source field is returned with every hit.
+ *
+ * @param array $fields
+ *
+ * @return $this
+ */
+ public function setSource(array $fields)
+ {
+ return $this->setParam('_source', $fields);
+ }
+
+ /**
+ * Returns a version for each search hit.
+ *
+ * @param bool $version
+ *
+ * @return $this
+ */
+ public function setVersion($version)
+ {
+ return $this->setParam('version', (bool) $version);
+ }
+
+ /**
+ * Enables explanation for each hit on how its score was computed.
+ *
+ * @param bool $explain
+ *
+ * @return $this
+ */
+ public function setExplain($explain)
+ {
+ return $this->setParam('explain', (bool) $explain);
+ }
+
+ /**
+ * Set script fields.
+ *
+ * @param array|\Elastica\ScriptFields $scriptFields
+ *
+ * @return $this
+ */
+ public function setScriptFields($scriptFields)
+ {
+ if (is_array($scriptFields)) {
+ $scriptFields = new ScriptFields($scriptFields);
+ }
+
+ return $this->setParam('script_fields', $scriptFields->toArray());
+ }
+
+ /**
+ * Adds a Script to the aggregation.
+ *
+ * @param string $name
+ * @param \Elastica\Script $script
+ *
+ * @return $this
+ */
+ public function addScriptField($name, Script $script)
+ {
+ $this->_params['script_fields'][$name] = $script->toArray();
+
+ return $this;
+ }
+
+ /**
+ * Sets highlight arguments for the results.
+ *
+ * @param array $highlightArgs
+ *
+ * @return $this
+ */
+ public function setHighlight(array $highlightArgs)
+ {
+ return $this->setParam('highlight', $highlightArgs);
+ }
+
+ /**
+ * Allows to return the field data representation of a field for each hit.
+ *
+ * @param array $fields
+ *
+ * @return $this
+ */
+ public function setFieldDataFields(array $fields)
+ {
+ return $this->setParam('fielddata_fields', $fields);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ValueCount.php b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ValueCount.php
index 36fb2a2c..8706a1be 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Aggregation/ValueCount.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Aggregation/ValueCount.php
@@ -1,16 +1,15 @@
<?php
-
namespace Elastica\Aggregation;
/**
- * Class ValueCount
- * @package Elastica\Aggregation
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-aggregations-metrics-valuecount-aggregation.html
+ * Class ValueCount.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html
*/
class ValueCount extends AbstractAggregation
{
/**
- * @param string $name the name of this aggregation
+ * @param string $name the name of this aggregation
* @param string $field the field on which to perform this aggregation
*/
public function __construct($name, $field)
@@ -20,12 +19,14 @@ class ValueCount extends AbstractAggregation
}
/**
- * Set the field for this aggregation
+ * Set the field for this aggregation.
+ *
* @param string $field the name of the document field on which to perform this aggregation
- * @return ValueCount
+ *
+ * @return $this
*/
public function setField($field)
{
return $this->setParam('field', $field);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk.php b/vendor/ruflin/elastica/lib/Elastica/Bulk.php
index 439fa566..e7693dce 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk.php
@@ -1,20 +1,13 @@
<?php
-
namespace Elastica;
-use Elastica\Document;
-use Elastica\Exception\Bulk\ResponseException as BulkResponseException;
-use Elastica\Exception\Bulk\UdpException;
-use Elastica\Exception\InvalidException;
-use Elastica\Request;
-use Elastica\Response;
-use Elastica\Client;
-use Elastica\Index;
-use Elastica\Type;
use Elastica\Bulk\Action;
use Elastica\Bulk\Action\AbstractDocument as AbstractDocumentAction;
-use Elastica\Bulk\ResponseSet;
use Elastica\Bulk\Response as BulkResponse;
+use Elastica\Bulk\ResponseSet;
+use Elastica\Exception\Bulk\ResponseException as BulkResponseException;
+use Elastica\Exception\Bulk\UdpException;
+use Elastica\Exception\InvalidException;
class Bulk
{
@@ -58,7 +51,8 @@ class Bulk
/**
* @param string|\Elastica\Index $index
- * @return \Elastica\Bulk
+ *
+ * @return $this
*/
public function setIndex($index)
{
@@ -89,7 +83,8 @@ class Bulk
/**
* @param string|\Elastica\Type $type
- * @return \Elastica\Bulk
+ *
+ * @return $this
*/
public function setType($type)
{
@@ -126,28 +121,32 @@ class Bulk
{
$path = '';
if ($this->hasIndex()) {
- $path .= $this->getIndex() . '/';
+ $path .= $this->getIndex().'/';
if ($this->hasType()) {
- $path .= $this->getType() . '/';
+ $path .= $this->getType().'/';
}
}
$path .= '_bulk';
+
return $path;
}
/**
* @param \Elastica\Bulk\Action $action
- * @return \Elastica\Bulk
+ *
+ * @return $this
*/
public function addAction(Action $action)
{
$this->_actions[] = $action;
+
return $this;
}
/**
* @param \Elastica\Bulk\Action[] $actions
- * @return \Elastica\Bulk
+ *
+ * @return $this
*/
public function addActions(array $actions)
{
@@ -168,8 +167,9 @@ class Bulk
/**
* @param \Elastica\Document $document
- * @param string $opType
- * @return \Elastica\Bulk
+ * @param string $opType
+ *
+ * @return $this
*/
public function addDocument(Document $document, $opType = null)
{
@@ -180,8 +180,9 @@ class Bulk
/**
* @param \Elastica\Document[] $documents
- * @param string $opType
- * @return \Elastica\Bulk
+ * @param string $opType
+ *
+ * @return $this
*/
public function addDocuments(array $documents, $opType = null)
{
@@ -194,8 +195,9 @@ class Bulk
/**
* @param \Elastica\Script $data
- * @param string $opType
- * @return \Elastica\Bulk
+ * @param string $opType
+ *
+ * @return $this
*/
public function addScript(Script $script, $opType = null)
{
@@ -206,8 +208,9 @@ class Bulk
/**
* @param \Elastica\Document[] $scripts
- * @param string $opType
- * @return \Elastica\Bulk
+ * @param string $opType
+ *
+ * @return $this
*/
public function addScripts(array $scripts, $opType = null)
{
@@ -220,23 +223,23 @@ class Bulk
/**
* @param \Elastica\Script|\Elastica\Document\array $data
- * @param string $opType
- * @return \Elastica\Bulk
+ * @param string $opType
+ *
+ * @return $this
*/
public function addData($data, $opType = null)
{
- if(!is_array($data)){
+ if (!is_array($data)) {
$data = array($data);
}
- foreach ($data as $actionData){
-
- if ($actionData instanceOf Script) {
+ foreach ($data as $actionData) {
+ if ($actionData instanceof Script) {
$this->addScript($actionData, $opType);
- }else if ($actionData instanceof Document) {
+ } elseif ($actionData instanceof Document) {
$this->addDocument($actionData, $opType);
- }else{
- throw new \InvalidArgumentException("Data should be a Document, a Script or an array containing Documents and/or Scripts");
+ } else {
+ throw new \InvalidArgumentException('Data should be a Document, a Script or an array containing Documents and/or Scripts');
}
}
@@ -245,8 +248,10 @@ class Bulk
/**
* @param array $data
- * @return \Elastica\Bulk
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function addRawData(array $data)
{
@@ -282,20 +287,30 @@ class Bulk
/**
* Set a url parameter on the request bulk request.
- * @var string $name name of the parameter
- * @var string $value value of the parameter
+ *
+ * @param string $name name of the parameter
+ * @param string $value value of the parameter
+ *
+ * @return $this
*/
- public function setRequestParam($name, $value) {
- $this->_requestParams[ $name ] = $value;
+ public function setRequestParam($name, $value)
+ {
+ $this->_requestParams[$name] = $value;
+
+ return $this;
}
/**
* Set the amount of time that the request will wait the shards to come on line.
* Requires Elasticsearch version >= 0.90.8.
- * @var string $time timeout in Elasticsearch time format
+ *
+ * @param string $time timeout in Elasticsearch time format
+ *
+ * @return $this
*/
- public function setShardTimeout($time) {
- $this->setRequestParam( 'timeout', $time );
+ public function setShardTimeout($time)
+ {
+ return $this->setRequestParam('timeout', $time);
}
/**
@@ -313,8 +328,9 @@ class Bulk
{
$data = '';
foreach ($this->getActions() as $action) {
- $data.= $action->toString();
+ $data .= $action->toString();
}
+
return $data;
}
@@ -329,6 +345,7 @@ class Bulk
$data[] = $row;
}
}
+
return $data;
}
@@ -347,8 +364,10 @@ class Bulk
/**
* @param \Elastica\Response $response
- * @throws Exception\Bulk\ResponseException
- * @throws Exception\InvalidException
+ *
+ * @throws \Elastica\Exception\Bulk\ResponseException
+ * @throws \Elastica\Exception\InvalidException
+ *
* @return \Elastica\Bulk\ResponseSet
*/
protected function _processResponse(Response $response)
@@ -361,9 +380,8 @@ class Bulk
if (isset($responseData['items']) && is_array($responseData['items'])) {
foreach ($responseData['items'] as $key => $item) {
-
if (!isset($actions[$key])) {
- throw new InvalidException('No response found for action #' . $key);
+ throw new InvalidException('No response found for action #'.$key);
}
$action = $actions[$key];
@@ -400,7 +418,8 @@ class Bulk
/**
* @param string $host
- * @param int $port
+ * @param int $port
+ *
* @throws \Elastica\Exception\Bulk\UdpException
*/
public function sendUdp($host = null, $port = null)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action.php
index 7922ec13..25d02adc 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action.php
@@ -1,16 +1,15 @@
<?php
-
namespace Elastica\Bulk;
use Elastica\Bulk;
-use Elastica\JSON;
use Elastica\Index;
+use Elastica\JSON;
use Elastica\Type;
class Action
{
const OP_TYPE_CREATE = 'create';
- const OP_TYPE_INDEX = 'index';
+ const OP_TYPE_INDEX = 'index';
const OP_TYPE_DELETE = 'delete';
const OP_TYPE_UPDATE = 'update';
@@ -21,7 +20,7 @@ class Action
self::OP_TYPE_CREATE,
self::OP_TYPE_INDEX,
self::OP_TYPE_DELETE,
- self::OP_TYPE_UPDATE
+ self::OP_TYPE_UPDATE,
);
/**
@@ -41,8 +40,8 @@ class Action
/**
* @param string $opType
- * @param array $metadata
- * @param array $source
+ * @param array $metadata
+ * @param array $source
*/
public function __construct($opType = self::OP_TYPE_INDEX, array $metadata = array(), array $source = array())
{
@@ -53,7 +52,8 @@ class Action
/**
* @param string $type
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setOpType($type)
{
@@ -72,7 +72,8 @@ class Action
/**
* @param array $metadata
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setMetadata(array $metadata)
{
@@ -99,7 +100,8 @@ class Action
/**
* @param array $source
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setSource($source)
{
@@ -126,7 +128,8 @@ class Action
/**
* @param string|\Elastica\Index $index
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setIndex($index)
{
@@ -140,7 +143,8 @@ class Action
/**
* @param string|\Elastica\Type $type
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setType($type)
{
@@ -155,7 +159,8 @@ class Action
/**
* @param string $id
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setId($id)
{
@@ -166,7 +171,8 @@ class Action
/**
* @param string $routing
- * @return \Elastica\Bulk\Action
+ *
+ * @return $this
*/
public function setRouting($routing)
{
@@ -184,6 +190,7 @@ class Action
if ($this->hasSource()) {
$data[] = $this->getSource();
}
+
return $data;
}
@@ -192,24 +199,26 @@ class Action
*/
public function toString()
{
- $string = JSON::stringify($this->getActionMetadata(), JSON_FORCE_OBJECT) . Bulk::DELIMITER;
+ $string = JSON::stringify($this->getActionMetadata(), JSON_FORCE_OBJECT).Bulk::DELIMITER;
if ($this->hasSource()) {
$source = $this->getSource();
if (is_string($source)) {
- $string.= $source;
+ $string .= $source;
} elseif (is_array($source) && array_key_exists('doc', $source) && is_string($source['doc'])) {
$docAsUpsert = (isset($source['doc_as_upsert'])) ? ', "doc_as_upsert": '.$source['doc_as_upsert'] : '';
- $string.= '{"doc": '.$source['doc'].$docAsUpsert.'}';
+ $string .= '{"doc": '.$source['doc'].$docAsUpsert.'}';
} else {
- $string.= JSON::stringify($source, 'JSON_ELASTICSEARCH');
+ $string .= JSON::stringify($source, 'JSON_ELASTICSEARCH');
}
- $string.= Bulk::DELIMITER;
+ $string .= Bulk::DELIMITER;
}
+
return $string;
}
/**
* @param string $opType
+ *
* @return bool
*/
public static function isValidOpType($opType)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/AbstractDocument.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/AbstractDocument.php
index 545e695c..3127ff9c 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/AbstractDocument.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/AbstractDocument.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Bulk\Action;
use Elastica\AbstractUpdateAction;
@@ -24,7 +23,8 @@ abstract class AbstractDocument extends Action
/**
* @param \Elastica\Document $document
- * @return \Elastica\Bulk\Action\AbstractDocument
+ *
+ * @return $this
*/
public function setDocument(Document $document)
{
@@ -39,12 +39,13 @@ abstract class AbstractDocument extends Action
/**
* @param \Elastica\Script $script
- * @return \Elastica\Bulk\Action\AbstractDocument
+ *
+ * @return $this
*/
public function setScript(Script $script)
{
if (!($this instanceof UpdateDocument)) {
- throw new \BadMethodCallException("setScript() can only be used for UpdateDocument");
+ throw new \BadMethodCallException('setScript() can only be used for UpdateDocument');
}
$this->_data = $script;
@@ -57,21 +58,19 @@ abstract class AbstractDocument extends Action
/**
* @param \Elastica\Script|\Elastica\Document $data
+ *
* @throws \InvalidArgumentException
- * @return \Elastica\Bulk\Action\AbstractDocument
+ *
+ * @return $this
*/
public function setData($data)
{
if ($data instanceof Script) {
-
$this->setScript($data);
-
- }else if ($data instanceof Document) {
-
+ } elseif ($data instanceof Document) {
$this->setDocument($data);
-
- }else{
- throw new \InvalidArgumentException("Data should be a Document or a Script.");
+ } else {
+ throw new \InvalidArgumentException('Data should be a Document or a Script.');
}
return $this;
@@ -79,7 +78,8 @@ abstract class AbstractDocument extends Action
/**
* Note: This is for backwards compatibility.
- * @return \Elastica\Document
+ *
+ * @return \Elastica\Document|null
*/
public function getDocument()
{
@@ -87,12 +87,13 @@ abstract class AbstractDocument extends Action
return $this->_data;
}
- return null;
+ return;
}
/**
* Note: This is for backwards compatibility.
- * @return \Elastica\Script
+ *
+ * @return \Elastica\Script|null
*/
public function getScript()
{
@@ -100,7 +101,7 @@ abstract class AbstractDocument extends Action
return $this->_data;
}
- return null;
+ return;
}
/**
@@ -113,22 +114,24 @@ abstract class AbstractDocument extends Action
/**
* @param \Elastica\AbstractUpdateAction $source
+ *
* @return array
*/
abstract protected function _getMetadata(AbstractUpdateAction $source);
/**
* @param \Elastica\Document|\Elastica\Script $data
- * @param string $opType
- * @return \Elastica\Bulk\Action\AbstractDocument
+ * @param string $opType
+ *
+ * @return static
*/
public static function create($data, $opType = null)
{
- //Check type
- if (!($data instanceof Document) && !($data instanceof Script)) {
- throw new \InvalidArgumentException("The data needs to be a Document or a Script.");
- }
-
+ //Check type
+ if (!($data instanceof Document) && !($data instanceof Script)) {
+ throw new \InvalidArgumentException('The data needs to be a Document or a Script.');
+ }
+
if (null === $opType && $data->hasOpType()) {
$opType = $data->getOpType();
}
@@ -137,8 +140,8 @@ abstract class AbstractDocument extends Action
if ($data instanceof Script) {
if ($opType === null) {
$opType = self::OP_TYPE_UPDATE;
- } else if ($opType != self::OP_TYPE_UPDATE) {
- throw new \InvalidArgumentException("Scripts can only be used with the update operation type.");
+ } elseif ($opType != self::OP_TYPE_UPDATE) {
+ throw new \InvalidArgumentException('Scripts can only be used with the update operation type.');
}
}
@@ -157,6 +160,7 @@ abstract class AbstractDocument extends Action
$action = new IndexDocument($data);
break;
}
+
return $action;
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/CreateDocument.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/CreateDocument.php
index ae868b49..82581856 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/CreateDocument.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/CreateDocument.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Bulk\Action;
class CreateDocument extends IndexDocument
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/DeleteDocument.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/DeleteDocument.php
index 572f80b6..5a243870 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/DeleteDocument.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/DeleteDocument.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Bulk\Action;
use Elastica\AbstractUpdateAction;
@@ -13,6 +12,7 @@ class DeleteDocument extends AbstractDocument
/**
* @param \Elastica\AbstractUpdateAction $action
+ *
* @return array
*/
protected function _getMetadata(AbstractUpdateAction $action)
@@ -24,7 +24,7 @@ class DeleteDocument extends AbstractDocument
'version',
'version_type',
'routing',
- 'parent'
+ 'parent',
);
$metadata = $action->getOptions($params, true);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/IndexDocument.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/IndexDocument.php
index d405563e..0cf30e61 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/IndexDocument.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/IndexDocument.php
@@ -1,9 +1,7 @@
<?php
-
namespace Elastica\Bulk\Action;
use Elastica\AbstractUpdateAction;
-use Elastica\Bulk\Action;
use Elastica\Document;
class IndexDocument extends AbstractDocument
@@ -15,7 +13,8 @@ class IndexDocument extends AbstractDocument
/**
* @param \Elastica\Document $document
- * @return \Elastica\Bulk\Action\IndexDocument
+ *
+ * @return $this
*/
public function setDocument(Document $document)
{
@@ -28,6 +27,7 @@ class IndexDocument extends AbstractDocument
/**
* @param \Elastica\AbstractUpdateAction $source
+ *
* @return array
*/
protected function _getMetadata(AbstractUpdateAction $action)
@@ -45,6 +45,7 @@ class IndexDocument extends AbstractDocument
'timestamp',
'retry_on_conflict',
);
+
$metadata = $action->getOptions($params, true);
return $metadata;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/UpdateDocument.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/UpdateDocument.php
index 4c1dbaa4..2b133acb 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/UpdateDocument.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Action/UpdateDocument.php
@@ -1,14 +1,9 @@
<?php
-
namespace Elastica\Bulk\Action;
use Elastica\Document;
use Elastica\Script;
-/**
- * @package Elastica\Bulk\Action
- * @link http://www.elasticsearch.org/guide/reference/api/bulk/
- */
class UpdateDocument extends IndexDocument
{
/**
@@ -18,8 +13,10 @@ class UpdateDocument extends IndexDocument
/**
* Set the document for this bulk update action.
+ *
* @param \Elastica\Document $document
- * @return \Elastica\Bulk\Action\UpdateDocument
+ *
+ * @return $this
*/
public function setDocument(Document $document)
{
@@ -28,10 +25,8 @@ class UpdateDocument extends IndexDocument
$source = array('doc' => $document->getData());
if ($document->getDocAsUpsert()) {
- $source['doc_as_upsert'] = true;
-
- }else if ($document->hasUpsert()) {
-
+ $source['doc_as_upsert'] = true;
+ } elseif ($document->hasUpsert()) {
$upsert = $document->getUpsert()->getData();
if (!empty($upsert)) {
@@ -46,7 +41,8 @@ class UpdateDocument extends IndexDocument
/**
* @param \Elastica\Script $script
- * @return \Elastica\Bulk\Action\AbstractDocument
+ *
+ * @return $this
*/
public function setScript(Script $script)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/Response.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/Response.php
index 5abd1850..855a72c5 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/Response.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/Response.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Bulk;
use Elastica\Response as BaseResponse;
@@ -17,9 +16,9 @@ class Response extends BaseResponse
protected $_opType;
/**
- * @param array|string $responseData
+ * @param array|string $responseData
* @param \Elastica\Bulk\Action $action
- * @param string $opType
+ * @param string $opType
*/
public function __construct($responseData, Action $action, $opType)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Bulk/ResponseSet.php b/vendor/ruflin/elastica/lib/Elastica/Bulk/ResponseSet.php
index 9fd835e4..1837203f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Bulk/ResponseSet.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Bulk/ResponseSet.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Bulk;
use Elastica\Response as BaseResponse;
@@ -17,7 +16,7 @@ class ResponseSet extends BaseResponse implements \Iterator, \Countable
protected $_position = 0;
/**
- * @param \Elastica\Response $response
+ * @param \Elastica\Response $response
* @param \Elastica\Bulk\Response[] $bulkResponses
*/
public function __construct(BaseResponse $response, array $bulkResponses)
@@ -36,7 +35,7 @@ class ResponseSet extends BaseResponse implements \Iterator, \Countable
}
/**
- * Returns first found error
+ * Returns first found error.
*
* @return string
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Client.php b/vendor/ruflin/elastica/lib/Elastica/Client.php
index a5821180..b30bdb43 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Client.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Client.php
@@ -1,27 +1,21 @@
<?php
-
namespace Elastica;
-use Elastica\Bulk;
use Elastica\Bulk\Action;
-use Elastica\Exception\ResponseException;
-use Elastica\Exception\ClientException;
use Elastica\Exception\ConnectionException;
use Elastica\Exception\InvalidException;
use Elastica\Exception\RuntimeException;
use Psr\Log\LoggerInterface;
/**
- * Client to connect the the elasticsearch server
+ * Client to connect the the elasticsearch server.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Client
{
/**
- * Config with defaults
+ * Config with defaults.
*
* log: Set to true, to enable logging, set a string to log to a specific file
* retryOnConflict: Use in \Elastica\Client::updateDocument
@@ -29,26 +23,21 @@ class Client
* @var array
*/
protected $_config = array(
- 'host' => null,
- 'port' => null,
- 'path' => null,
- 'url' => null,
- 'proxy' => null,
- 'transport' => null,
- 'persistent' => true,
- 'timeout' => null,
- 'connections' => array(), // host, port, path, timeout, transport, persistent, timeout, config -> (curl, headers, url)
- 'roundRobin' => false,
- 'log' => false,
+ 'host' => null,
+ 'port' => null,
+ 'path' => null,
+ 'url' => null,
+ 'proxy' => null,
+ 'transport' => null,
+ 'persistent' => true,
+ 'timeout' => null,
+ 'connections' => array(), // host, port, path, timeout, transport, persistent, timeout, config -> (curl, headers, url)
+ 'roundRobin' => false,
+ 'log' => false,
'retryOnConflict' => 0,
);
/**
- * @var \Elastica\Connection[] List of connections
- */
- protected $_connections = array();
-
- /**
* @var callback
*/
protected $_callback = null;
@@ -67,9 +56,13 @@ class Client
* @var LoggerInterface
*/
protected $_logger = null;
+ /**
+ * @var Connection\ConnectionPool
+ */
+ protected $_connectionPool = null;
/**
- * Creates a new Elastica client
+ * Creates a new Elastica client.
*
* @param array $config OPTIONAL Additional config options
* @param callback $callback OPTIONAL Callback function which can be used to be notified about errors (for example connection down)
@@ -82,32 +75,45 @@ class Client
}
/**
- * Inits the client connections
+ * Inits the client connections.
*/
protected function _initConnections()
{
- $connections = $this->getConfig('connections');
+ $connections = array();
- foreach ($connections as $connection) {
- $this->_connections[] = Connection::create($this->_prepareConnectionParams($connection));
+ foreach ($this->getConfig('connections') as $connection) {
+ $connections[] = Connection::create($this->_prepareConnectionParams($connection));
}
if (isset($this->_config['servers'])) {
foreach ($this->getConfig('servers') as $server) {
- $this->_connections[] = Connection::create($this->_prepareConnectionParams($server));
+ $connections[] = Connection::create($this->_prepareConnectionParams($server));
}
}
// If no connections set, create default connection
- if (empty($this->_connections)) {
- $this->_connections[] = Connection::create($this->_prepareConnectionParams($this->getConfig()));
+ if (empty($connections)) {
+ $connections[] = Connection::create($this->_prepareConnectionParams($this->getConfig()));
}
+
+ if (!isset($this->_config['connectionStrategy'])) {
+ if ($this->getConfig('roundRobin') === true) {
+ $this->setConfigValue('connectionStrategy', 'RoundRobin');
+ } else {
+ $this->setConfigValue('connectionStrategy', 'Simple');
+ }
+ }
+
+ $strategy = Connection\Strategy\StrategyFactory::create($this->getConfig('connectionStrategy'));
+
+ $this->_connectionPool = new Connection\ConnectionPool($connections, $strategy, $this->_callback);
}
/**
* Creates a Connection params array from a Client or server config array.
*
* @param array $config
+ *
* @return array
*/
protected function _prepareConnectionParams(array $config)
@@ -126,10 +132,11 @@ class Client
}
/**
- * Sets specific config values (updates and keeps default values)
+ * Sets specific config values (updates and keeps default values).
+ *
+ * @param array $config Params
*
- * @param array $config Params
- * @return \Elastica\Client
+ * @return $this
*/
public function setConfig(array $config)
{
@@ -142,11 +149,13 @@ class Client
/**
* Returns a specific config key or the whole
- * config array if not set
+ * config array if not set.
+ *
+ * @param string $key Config key
*
- * @param string $key Config key
* @throws \Elastica\Exception\InvalidException
- * @return array|string Config value
+ *
+ * @return array|string Config value
*/
public function getConfig($key = '')
{
@@ -155,18 +164,19 @@ class Client
}
if (!array_key_exists($key, $this->_config)) {
- throw new InvalidException('Config key is not set: ' . $key);
+ throw new InvalidException('Config key is not set: '.$key);
}
return $this->_config[$key];
}
/**
- * Sets / overwrites a specific config value
+ * Sets / overwrites a specific config value.
+ *
+ * @param string $key Key to set
+ * @param mixed $value Value
*
- * @param string $key Key to set
- * @param mixed $value Value
- * @return \Elastica\Client Client object
+ * @return $this
*/
public function setConfigValue($key, $value)
{
@@ -174,8 +184,9 @@ class Client
}
/**
- * @param array|string $keys config key or path of config keys
- * @param mixed $default default value will be returned if key was not found
+ * @param array|string $keys config key or path of config keys
+ * @param mixed $default default value will be returned if key was not found
+ *
* @return mixed
*/
public function getConfigValue($keys, $default = null)
@@ -188,13 +199,15 @@ class Client
return $default;
}
}
+
return $value;
}
/**
- * Returns the index for the given connection
+ * Returns the index for the given connection.
+ *
+ * @param string $name Index name to create connection to
*
- * @param string $name Index name to create connection to
* @return \Elastica\Index Index for the given name
*/
public function getIndex($name)
@@ -203,11 +216,14 @@ class Client
}
/**
- * Adds a HTTP Header
+ * Adds a HTTP Header.
+ *
+ * @param string $header The HTTP Header
+ * @param string $headerValue The HTTP Header Value
*
- * @param string $header The HTTP Header
- * @param string $headerValue The HTTP Header Value
* @throws \Elastica\Exception\InvalidException If $header or $headerValue is not a string
+ *
+ * @return $this
*/
public function addHeader($header, $headerValue)
{
@@ -216,13 +232,18 @@ class Client
} else {
throw new InvalidException('Header must be a string');
}
+
+ return $this;
}
/**
- * Remove a HTTP Header
+ * Remove a HTTP Header.
*
- * @param string $header The HTTP Header to remove
- * @throws \Elastica\Exception\InvalidException IF $header is not a string
+ * @param string $header The HTTP Header to remove
+ *
+ * @throws \Elastica\Exception\InvalidException If $header is not a string
+ *
+ * @return $this
*/
public function removeHeader($header)
{
@@ -233,21 +254,27 @@ class Client
} else {
throw new InvalidException('Header must be a string');
}
+
+ return $this;
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
*
* Array of \Elastica\Document as input. Index and type has to be
* set inside the document, because for bulk settings documents,
* documents can belong to any type and index
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
- * @return \Elastica\Bulk\ResponseSet Response object
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
+ *
* @throws \Elastica\Exception\InvalidException If docs is empty
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @return \Elastica\Bulk\ResponseSet Response object
*/
- public function updateDocuments(array $docs) {
+ public function updateDocuments(array $docs)
+ {
if (empty($docs)) {
throw new InvalidException('Array has to consist of at least one element');
}
@@ -260,16 +287,19 @@ class Client
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
*
* Array of \Elastica\Document as input. Index and type has to be
* set inside the document, because for bulk settings documents,
* documents can belong to any type and index
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
- * @return \Elastica\Bulk\ResponseSet Response object
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
+ *
* @throws \Elastica\Exception\InvalidException If docs is empty
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @return \Elastica\Bulk\ResponseSet Response object
*/
public function addDocuments(array $docs)
{
@@ -285,25 +315,25 @@ class Client
}
/**
- * Update document, using update script. Requires elasticsearch >= 0.19.0
+ * Update document, using update script. Requires elasticsearch >= 0.19.0.
+ *
+ * @param int $id document id
+ * @param array|\Elastica\Script|\Elastica\Document $data raw data for request body
+ * @param string $index index to update
+ * @param string $type type of index to update
+ * @param array $options array of query params to use for query. For possible options check es api
*
- * @param int $id document id
- * @param array|\Elastica\Script|\Elastica\Document $data raw data for request body
- * @param string $index index to update
- * @param string $type type of index to update
- * @param array $options array of query params to use for query. For possible options check es api
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/api/update.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
*/
public function updateDocument($id, $data, $index, $type, array $options = array())
{
- $path = $index . '/' . $type . '/' . $id . '/_update';
+ $path = $index.'/'.$type.'/'.$id.'/_update';
if ($data instanceof Script) {
$requestData = $data->toArray();
-
} elseif ($data instanceof Document) {
-
$requestData = array('doc' => $data->getData());
if ($data->getDocAsUpsert()) {
@@ -339,14 +369,13 @@ class Client
//If an upsert document exists
if ($data instanceof Script || $data instanceof Document) {
-
if ($data->hasUpsert()) {
$requestData['upsert'] = $data->getUpsert()->getData();
}
}
if (!isset($options['retry_on_conflict'])) {
- $retryOnConflict = $this->getConfig("retryOnConflict");
+ $retryOnConflict = $this->getConfig('retryOnConflict');
$options['retry_on_conflict'] = $retryOnConflict;
}
@@ -371,7 +400,7 @@ class Client
/**
* @param \Elastica\Response $response
* @param \Elastica\Document $document
- * @param string $fields Array of field names to be populated or '_source' if whole document data should be updated
+ * @param string $fields Array of field names to be populated or '_source' if whole document data should be updated
*/
protected function _populateDocumentFieldsFromResponse(Response $response, Document $document, $fields)
{
@@ -395,11 +424,13 @@ class Client
}
/**
- * Bulk deletes documents
+ * Bulk deletes documents.
*
* @param array|\Elastica\Document[] $docs
- * @return \Elastica\Bulk\ResponseSet
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return \Elastica\Bulk\ResponseSet
*/
public function deleteDocuments(array $docs)
{
@@ -414,7 +445,7 @@ class Client
}
/**
- * Returns the status object for all indices
+ * Returns the status object for all indices.
*
* @return \Elastica\Status Status object
*/
@@ -424,7 +455,7 @@ class Client
}
/**
- * Returns the current cluster
+ * Returns the current cluster.
*
* @return \Elastica\Cluster Cluster object
*/
@@ -434,54 +465,35 @@ class Client
}
/**
- * @param \Elastica\Connection $connection
- * @return \Elastica\Client
+ * @param \Elastica\Connection $connection
+ *
+ * @return $this
*/
public function addConnection(Connection $connection)
{
- $this->_connections[] = $connection;
+ $this->_connectionPool->addConnection($connection);
return $this;
}
/**
* Determines whether a valid connection is available for use.
- *
+ *
* @return bool
*/
public function hasConnection()
{
- foreach ($this->_connections as $connection)
- {
- if ($connection->isEnabled())
- {
- return true;
- }
- }
-
- return false;
+ return $this->_connectionPool->hasConnection();
}
/**
* @throws \Elastica\Exception\ClientException
+ *
* @return \Elastica\Connection
*/
public function getConnection()
{
- $enabledConnection = null;
-
- foreach ($this->_connections as $connection) {
- if ($connection->isEnabled()) {
- $enabledConnection = $connection;
- break;
- }
- }
-
- if (empty($enabledConnection)) {
- throw new ClientException('No enabled connection');
- }
-
- return $enabledConnection;
+ return $this->_connectionPool->getConnection();
}
/**
@@ -489,30 +501,42 @@ class Client
*/
public function getConnections()
{
- return $this->_connections;
+ return $this->_connectionPool->getConnections();
+ }
+
+ /**
+ * @return \Elastica\Connection\Strategy\StrategyInterface
+ */
+ public function getConnectionStrategy()
+ {
+ return $this->_connectionPool->getStrategy();
}
/**
- * @param \Elastica\Connection[] $connections
- * @return \Elastica\Client
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @return $this
*/
public function setConnections(array $connections)
{
- $this->_connections = $connections;
+ $this->_connectionPool->setConnections($connections);
return $this;
}
/**
- * Deletes documents with the given ids, index, type from the index
+ * Deletes documents with the given ids, index, type from the index.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
+ *
+ * @param array $ids Document ids
+ * @param string|\Elastica\Index $index Index name
+ * @param string|\Elastica\Type $type Type of documents
+ * @param string|false $routing Optional routing key for all ids
*
- * @param array $ids Document ids
- * @param string|\Elastica\Index $index Index name
- * @param string|\Elastica\Type $type Type of documents
- * @param string|false $routing Optional routing key for all ids
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Bulk\ResponseSet Response object
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @return \Elastica\Bulk\ResponseSet Response object
*/
public function deleteIds(array $ids, $index, $type, $routing = false)
{
@@ -539,7 +563,7 @@ class Client
}
/**
- * Bulk operation
+ * Bulk operation.
*
* Every entry in the params array has to exactly on array
* of the bulk operation. An example param array would be:
@@ -550,11 +574,14 @@ class Client
* array('delete' => array('_index' => 'test', '_type' => 'user', '_id' => '2'))
* );
*
- * @param array $params Parameter array
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
+ *
+ * @param array $params Parameter array
+ *
* @throws \Elastica\Exception\ResponseException
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Bulk\ResponseSet Response object
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @return \Elastica\Bulk\ResponseSet Response object
*/
public function bulk(array $params)
{
@@ -570,15 +597,17 @@ class Client
}
/**
- * Makes calls to the elasticsearch server based on this index
+ * Makes calls to the elasticsearch server based on this index.
*
* It's possible to make any REST query directly over this method
*
- * @param string $path Path to call
- * @param string $method Rest method to use (GET, POST, DELETE, PUT)
- * @param array $data OPTIONAL Arguments as array
- * @param array $query OPTIONAL Query params
+ * @param string $path Path to call
+ * @param string $method Rest method to use (GET, POST, DELETE, PUT)
+ * @param array $data OPTIONAL Arguments as array
+ * @param array $query OPTIONAL Query params
+ *
* @throws Exception\ConnectionException|\Exception
+ *
* @return \Elastica\Response Response object
*/
public function request($path, $method = Request::GET, $data = array(), array $query = array())
@@ -595,30 +624,26 @@ class Client
$this->_lastResponse = $response;
return $response;
-
} catch (ConnectionException $e) {
- $connection->setEnabled(false);
-
- // Calls callback with connection as param to make it possible to persist invalid connections
- if ($this->_callback) {
- call_user_func($this->_callback, $connection, $e, $this);
- }
+ $this->_connectionPool->onFail($connection, $e, $this);
// In case there is no valid connection left, throw exception which caused the disabling of the connection.
- if (!$this->hasConnection())
- {
+ if (!$this->hasConnection()) {
throw $e;
}
+
return $this->request($path, $method, $data, $query);
}
}
/**
- * Optimizes all search indices
+ * Optimizes all search indices.
+ *
+ * @param array $args OPTIONAL Optional arguments
*
- * @param array $args OPTIONAL Optional arguments
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-optimize.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-optimize.html
*/
public function optimizeAll($args = array())
{
@@ -626,10 +651,11 @@ class Client
}
/**
- * Refreshes all search indices
+ * Refreshes all search indices.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-refresh.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html
*/
public function refreshAll()
{
@@ -637,9 +663,10 @@ class Client
}
/**
- * logging
+ * logging.
*
* @param string|\Elastica\Request $context
+ *
* @throws Exception\RuntimeException
*/
protected function _log($context)
@@ -677,9 +704,10 @@ class Client
}
/**
- * set Logger
+ * set Logger.
*
* @param LoggerInterface $logger
+ *
* @return $this
*/
public function setLogger(LoggerInterface $logger)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Cluster.php b/vendor/ruflin/elastica/lib/Elastica/Cluster.php
index ac5acf76..990aeeb2 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Cluster.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Cluster.php
@@ -1,22 +1,21 @@
<?php
-
namespace Elastica;
+
use Elastica\Cluster\Health;
use Elastica\Cluster\Settings;
use Elastica\Exception\NotImplementedException;
/**
- * Cluster informations for elasticsearch
+ * Cluster informations for elasticsearch.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html
*/
class Cluster
{
/**
- * Client
+ * Client.
*
* @var \Elastica\Client Client object
*/
@@ -37,7 +36,7 @@ class Cluster
protected $_data;
/**
- * Creates a cluster object
+ * Creates a cluster object.
*
* @param \Elastica\Client $client Connection client object
*/
@@ -48,7 +47,7 @@ class Cluster
}
/**
- * Refreshes all cluster information (state)
+ * Refreshes all cluster information (state).
*/
public function refresh()
{
@@ -58,7 +57,7 @@ class Cluster
}
/**
- * Returns the response object
+ * Returns the response object.
*
* @return \Elastica\Response Response object
*/
@@ -68,7 +67,7 @@ class Cluster
}
/**
- * Return list of index names
+ * Return list of index names.
*
* @return array List of index names
*/
@@ -85,10 +84,11 @@ class Cluster
}
/**
- * Returns the full state of the cluster
+ * Returns the full state of the cluster.
*
* @return array State array
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-state.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
*/
public function getState()
{
@@ -96,34 +96,40 @@ class Cluster
}
/**
- * Returns a list of existing node names
+ * Returns a list of existing node names.
*
* @return array List of node names
*/
public function getNodeNames()
{
$data = $this->getState();
+ $nodeNames = array();
+ foreach ($data['nodes'] as $node) {
+ $nodeNames[] = $node['name'];
+ }
- return array_keys($data['routing_nodes']['nodes']);
+ return $nodeNames;
}
/**
- * Returns all nodes of the cluster
+ * Returns all nodes of the cluster.
*
* @return \Elastica\Node[]
*/
public function getNodes()
{
$nodes = array();
- foreach ($this->getNodeNames() as $name) {
- $nodes[] = new Node($name, $this->getClient());
+ $data = $this->getState();
+
+ foreach ($data['nodes'] as $id => $name) {
+ $nodes[] = new Node($id, $this->getClient());
}
return $nodes;
}
/**
- * Returns the client object
+ * Returns the client object.
*
* @return \Elastica\Client Client object
*/
@@ -133,11 +139,13 @@ class Cluster
}
/**
- * Returns the cluster information (not implemented yet)
+ * Returns the cluster information (not implemented yet).
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html
+ *
+ * @param array $args Additional arguments
*
- * @param array $args Additional arguments
* @throws \Elastica\Exception\NotImplementedException
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-info.html
*/
public function getInfo(array $args)
{
@@ -145,10 +153,11 @@ class Cluster
}
/**
- * Return Cluster health
+ * Return Cluster health.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
*
* @return \Elastica\Cluster\Health
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-health.html
*/
public function getHealth()
{
@@ -156,7 +165,7 @@ class Cluster
}
/**
- * Return Cluster settings
+ * Return Cluster settings.
*
* @return \Elastica\Cluster\Settings
*/
@@ -166,15 +175,17 @@ class Cluster
}
/**
- * Shuts down the complete cluster
+ * Shuts down the complete cluster.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html
+ *
+ * @param string $delay OPTIONAL Seconds to shutdown cluster after (default = 1s)
*
- * @param string $delay OPTIONAL Seconds to shutdown cluster after (default = 1s)
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-shutdown.html
*/
public function shutdown($delay = '1s')
{
- $path = '_shutdown?delay=' . $delay;
+ $path = '_shutdown?delay='.$delay;
return $this->_client->request($path, Request::POST);
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health.php b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health.php
index 18c77cfc..d5d25ff1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health.php
@@ -1,6 +1,6 @@
<?php
-
namespace Elastica\Cluster;
+
use Elastica\Client;
use Elastica\Cluster\Health\Index;
use Elastica\Request;
@@ -8,23 +8,19 @@ use Elastica\Request;
/**
* Elastic cluster health.
*
- * @package Elastica
* @author Ray Ward <ray.ward@bigcommerce.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-health.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
*/
class Health
{
/**
- * Elastica client.
- *
- * @var \Elastica\Client Client object
+ * @var \Elastica\Client Client object.
*/
protected $_client = null;
/**
- * The cluster health data.
- *
- * @var array
+ * @var array The cluster health data.
*/
protected $_data = null;
@@ -63,7 +59,7 @@ class Health
/**
* Refreshes the health data for the cluster.
*
- * @return \Elastica\Cluster\Health
+ * @return $this
*/
public function refresh()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Index.php b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Index.php
index c39e94c3..ef55bd00 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Index.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Index.php
@@ -1,27 +1,22 @@
<?php
-
namespace Elastica\Cluster\Health;
/**
* Wraps status information for an index.
*
- * @package Elastica
* @author Ray Ward <ray.ward@bigcommerce.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-health.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
*/
class Index
{
/**
- * The name of the index.
- *
- * @var string
+ * @var string The name of the index.
*/
protected $_name;
/**
- * The index health data.
- *
- * @var array
+ * @var array The index health data.
*/
protected $_data;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Shard.php b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Shard.php
index a5da08ae..e1d2c8dc 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Shard.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Cluster/Health/Shard.php
@@ -1,27 +1,22 @@
<?php
-
namespace Elastica\Cluster\Health;
/**
* Wraps status information for a shard.
*
- * @package Elastica
* @author Ray Ward <ray.ward@bigcommerce.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-health.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
*/
class Shard
{
/**
- * The shard index/number.
- *
- * @var int
+ * @var int The shard index/number.
*/
protected $_shardNumber;
/**
- * The shard health data.
- *
- * @var array
+ * @var array The shard health data.
*/
protected $_data;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Cluster/Settings.php b/vendor/ruflin/elastica/lib/Elastica/Cluster/Settings.php
index 8166dda3..c597417f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Cluster/Settings.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Cluster/Settings.php
@@ -1,29 +1,25 @@
<?php
-
namespace Elastica\Cluster;
use Elastica\Client;
use Elastica\Request;
/**
- * Cluster settings
+ * Cluster settings.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-update-settings.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html
*/
class Settings
{
/**
- * Client
- *
* @var \Elastica\Client Client object
*/
protected $_client = null;
/**
- * Creates a cluster object
+ * Creates a cluster object.
*
* @param \Elastica\Client $client Connection client object
*/
@@ -33,7 +29,7 @@ class Settings
}
/**
- * Returns settings data
+ * Returns settings data.
*
* @return array Settings data (persistent and transient)
*/
@@ -43,11 +39,12 @@ class Settings
}
/**
- * Returns the current persistent settings of the cluster
+ * Returns the current persistent settings of the cluster.
*
* If param is set, only specified setting is return.
*
- * @param string $setting OPTIONAL Setting name to return
+ * @param string $setting OPTIONAL Setting name to return
+ *
* @return array|string|null Settings data
*/
public function getPersistent($setting = '')
@@ -59,7 +56,7 @@ class Settings
if (isset($settings[$setting])) {
return $settings[$setting];
} else {
- return null;
+ return;
}
}
@@ -67,11 +64,12 @@ class Settings
}
/**
- * Returns the current transient settings of the cluster
+ * Returns the current transient settings of the cluster.
*
* If param is set, only specified setting is return.
*
- * @param string $setting OPTIONAL Setting name to return
+ * @param string $setting OPTIONAL Setting name to return
+ *
* @return array|string|null Settings data
*/
public function getTransient($setting = '')
@@ -90,12 +88,14 @@ class Settings
if (isset($settings[$key])) {
$settings = $settings[$key];
} else {
- return null;
+ return;
}
}
+
return $settings;
}
- return null;
+
+ return;
}
}
@@ -103,10 +103,11 @@ class Settings
}
/**
- * Sets persistent setting
+ * Sets persistent setting.
+ *
+ * @param string $key
+ * @param string $value
*
- * @param string $key
- * @param string $value
* @return \Elastica\Response
*/
public function setPersistent($key, $value)
@@ -114,17 +115,18 @@ class Settings
return $this->set(
array(
'persistent' => array(
- $key => $value
- )
+ $key => $value,
+ ),
)
);
}
/**
- * Sets transient settings
+ * Sets transient settings.
+ *
+ * @param string $key
+ * @param string $value
*
- * @param string $key
- * @param string $value
* @return \Elastica\Response
*/
public function setTransient($key, $value)
@@ -132,19 +134,20 @@ class Settings
return $this->set(
array(
'transient' => array(
- $key => $value
- )
+ $key => $value,
+ ),
)
);
}
/**
- * Sets the cluster to read only
+ * Sets the cluster to read only.
*
* Second param can be used to set it persistent
*
- * @param bool $readOnly
- * @param bool $persistent
+ * @param bool $readOnly
+ * @param bool $persistent
+ *
* @return \Elastica\Response $response
*/
public function setReadOnly($readOnly = true, $persistent = false)
@@ -161,9 +164,10 @@ class Settings
}
/**
- * Set settings for cluster
+ * Set settings for cluster.
+ *
+ * @param array $settings Raw settings (including persistent or transient)
*
- * @param array $settings Raw settings (including persistent or transient)
* @return \Elastica\Response
*/
public function set(array $settings)
@@ -172,7 +176,7 @@ class Settings
}
/**
- * Get the client
+ * Get the client.
*
* @return \Elastica\Client
*/
@@ -182,10 +186,11 @@ class Settings
}
/**
- * Sends settings request
+ * Sends settings request.
+ *
+ * @param array $data OPTIONAL Data array
+ * @param string $method OPTIONAL Transfer method (default = \Elastica\Request::GET)
*
- * @param array $data OPTIONAL Data array
- * @param string $method OPTIONAL Transfer method (default = \Elastica\Request::GET)
* @return \Elastica\Response Response object
*/
public function request(array $data = array(), $method = Request::GET)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection.php b/vendor/ruflin/elastica/lib/Elastica/Connection.php
index b9d910c9..0084b6ee 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Connection.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection.php
@@ -1,30 +1,28 @@
<?php
-
namespace Elastica;
+
use Elastica\Exception\InvalidException;
use Elastica\Transport\AbstractTransport;
/**
- * Elastica connection instance to an elasticasearch node
+ * Elastica connection instance to an elasticasearch node.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Connection extends Param
{
/**
- * Default elastic search port
+ * Default elastic search port.
*/
const DEFAULT_PORT = 9200;
/**
- * Default host
+ * Default host.
*/
const DEFAULT_HOST = 'localhost';
/**
- * Default transport
+ * Default transport.
*
* @var string
*/
@@ -37,7 +35,14 @@ class Connection extends Param
const TIMEOUT = 300;
/**
- * Creates a new connection object. A connection is enabled by default
+ * Number of seconds after a connection timeout occurs for every request during the connection phase.
+ *
+ * @see Connection::setConnectTimeout();
+ */
+ const CONNECT_TIMEOUT = 0;
+
+ /**
+ * Creates a new connection object. A connection is enabled by default.
*
* @param array $params OPTIONAL Connection params: host, port, transport, timeout. All are optional
*/
@@ -57,12 +62,13 @@ class Connection extends Param
*/
public function getPort()
{
- return $this->hasParam('port')?$this->getParam('port'):self::DEFAULT_PORT;
+ return $this->hasParam('port') ? $this->getParam('port') : self::DEFAULT_PORT;
}
/**
- * @param int $port
- * @return \Elastica\Connection
+ * @param int $port
+ *
+ * @return $this
*/
public function setPort($port)
{
@@ -74,12 +80,13 @@ class Connection extends Param
*/
public function getHost()
{
- return $this->hasParam('host')?$this->getParam('host'):self::DEFAULT_HOST;
+ return $this->hasParam('host') ? $this->getParam('host') : self::DEFAULT_HOST;
}
/**
- * @param string $host
- * @return \Elastica\Connection
+ * @param string $host
+ *
+ * @return $this
*/
public function setHost($host)
{
@@ -91,7 +98,7 @@ class Connection extends Param
*/
public function getProxy()
{
- return $this->hasParam('proxy')?$this->getParam('proxy'):null;
+ return $this->hasParam('proxy') ? $this->getParam('proxy') : null;
}
/**
@@ -99,8 +106,10 @@ class Connection extends Param
* empty string to disable proxy and proxy string to set actual http proxy.
*
* @see http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPROXY
- * @param string|null $proxy
- * @return \Elastica\Connection
+ *
+ * @param string|null $proxy
+ *
+ * @return $this
*/
public function setProxy($proxy)
{
@@ -112,12 +121,13 @@ class Connection extends Param
*/
public function getTransport()
{
- return $this->hasParam('transport')?$this->getParam('transport'):self::DEFAULT_TRANSPORT;
+ return $this->hasParam('transport') ? $this->getParam('transport') : self::DEFAULT_TRANSPORT;
}
/**
- * @param string|array $transport
- * @return \Elastica\Connection
+ * @param string|array $transport
+ *
+ * @return $this
*/
public function setTransport($transport)
{
@@ -129,12 +139,13 @@ class Connection extends Param
*/
public function getPath()
{
- return $this->hasParam('path')?$this->getParam('path'):'';
+ return $this->hasParam('path') ? $this->getParam('path') : '';
}
/**
- * @param string $path
- * @return \Elastica\Connection
+ * @param string $path
+ *
+ * @return $this
*/
public function setPath($path)
{
@@ -142,8 +153,9 @@ class Connection extends Param
}
/**
- * @param int $timeout Timeout in seconds
- * @return \Elastica\Connection
+ * @param int $timeout Timeout in seconds
+ *
+ * @return $this
*/
public function setTimeout($timeout)
{
@@ -155,14 +167,40 @@ class Connection extends Param
*/
public function getTimeout()
{
- return (int) $this->hasParam('timeout')?$this->getParam('timeout'):self::TIMEOUT;
+ return (int) $this->hasParam('timeout') ? $this->getParam('timeout') : self::TIMEOUT;
}
/**
- * Enables a connection
+ * Number of seconds after a connection timeout occurs for every request during the connection phase.
+ * Use a small value if you need a fast fail in case of dead, unresponsive or unreachable servers (~5 sec).
+ *
+ * Set to zero to switch to the default built-in connection timeout (300 seconds in curl).
+ *
+ * @see http://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html
*
- * @param bool $enabled OPTIONAL (default = true)
- * @return \Elastica\Connection
+ * @param int $timeout Connect timeout in seconds
+ *
+ * @return $this
+ */
+ public function setConnectTimeout($timeout)
+ {
+ return $this->setParam('connectTimeout', $timeout);
+ }
+
+ /**
+ * @return int Connection timeout in seconds
+ */
+ public function getConnectTimeout()
+ {
+ return (int) $this->hasParam('connectTimeout') ? $this->getParam('connectTimeout') : self::CONNECT_TIMEOUT;
+ }
+
+ /**
+ * Enables a connection.
+ *
+ * @param bool $enabled OPTIONAL (default = true)
+ *
+ * @return $this
*/
public function setEnabled($enabled = true)
{
@@ -178,10 +216,11 @@ class Connection extends Param
}
/**
- * Returns an instance of the transport type
+ * Returns an instance of the transport type.
+ *
+ * @throws \Elastica\Exception\InvalidException If invalid transport type
*
* @return \Elastica\Transport\AbstractTransport Transport object
- * @throws \Elastica\Exception\InvalidException If invalid transport type
*/
public function getTransportObject()
{
@@ -195,12 +234,13 @@ class Connection extends Param
*/
public function isPersistent()
{
- return (bool) $this->hasParam('persistent')?$this->getParam('persistent'):true;
+ return (bool) $this->hasParam('persistent') ? $this->getParam('persistent') : true;
}
/**
- * @param array $config
- * @return \Elastica\Connection
+ * @param array $config
+ *
+ * @return $this
*/
public function setConfig(array $config)
{
@@ -208,9 +248,10 @@ class Connection extends Param
}
/**
- * @param string $key
- * @param mixed $value
- * @return \Elastica\Connection
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return $this
*/
public function addConfig($key, $value)
{
@@ -220,7 +261,8 @@ class Connection extends Param
}
/**
- * @param string $key
+ * @param string $key
+ *
* @return bool
*/
public function hasConfig($key)
@@ -232,11 +274,13 @@ class Connection extends Param
/**
* Returns a specific config key or the whole
- * config array if not set
+ * config array if not set.
+ *
+ * @param string $key Config key
*
- * @param string $key Config key
* @throws \Elastica\Exception\InvalidException
- * @return array|string Config value
+ *
+ * @return array|string Config value
*/
public function getConfig($key = '')
{
@@ -246,25 +290,27 @@ class Connection extends Param
}
if (!array_key_exists($key, $config)) {
- throw new InvalidException('Config key is not set: ' . $key);
+ throw new InvalidException('Config key is not set: '.$key);
}
return $config[$key];
}
/**
- * @param \Elastica\Connection|array $params Params to create a connection
+ * @param \Elastica\Connection|array $params Params to create a connection
+ *
* @throws Exception\InvalidException
- * @return \Elastica\Connection
+ *
+ * @return self
*/
public static function create($params = array())
{
$connection = null;
- if ($params instanceof Connection) {
+ if ($params instanceof self) {
$connection = $params;
} elseif (is_array($params)) {
- $connection = new Connection($params);
+ $connection = new self($params);
} else {
throw new InvalidException('Invalid data type');
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/ConnectionPool.php b/vendor/ruflin/elastica/lib/Elastica/Connection/ConnectionPool.php
new file mode 100644
index 00000000..b5fa681d
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/ConnectionPool.php
@@ -0,0 +1,122 @@
+<?php
+namespace Elastica\Connection;
+
+use Elastica\Client;
+use Elastica\Connection;
+use Elastica\Connection\Strategy\StrategyInterface;
+use Exception;
+
+/**
+ * Description of ConnectionPool.
+ *
+ * @author chabior
+ */
+class ConnectionPool
+{
+ /**
+ * @var array|\Elastica\Connection[] Connections array
+ */
+ protected $_connections;
+
+ /**
+ * @var \Elastica\Connection\Strategy\StrategyInterface Strategy for connection
+ */
+ protected $_strategy;
+
+ /**
+ * @var callback Function called on connection fail
+ */
+ protected $_callback;
+
+ /**
+ * @param array $connections
+ * @param \Elastica\Connection\Strategy\StrategyInterface $strategy
+ * @param callback $callback
+ */
+ public function __construct(array $connections, StrategyInterface $strategy, $callback = null)
+ {
+ $this->_connections = $connections;
+
+ $this->_strategy = $strategy;
+
+ $this->_callback = $callback;
+ }
+
+ /**
+ * @param \Elastica\Connection $connection
+ *
+ * @return $this
+ */
+ public function addConnection(Connection $connection)
+ {
+ $this->_connections[] = $connection;
+
+ return $this;
+ }
+
+ /**
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @return $this
+ */
+ public function setConnections(array $connections)
+ {
+ $this->_connections = $connections;
+
+ return $this;
+ }
+
+ /**
+ * @return bool
+ */
+ public function hasConnection()
+ {
+ foreach ($this->_connections as $connection) {
+ if ($connection->isEnabled()) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * @return array
+ */
+ public function getConnections()
+ {
+ return $this->_connections;
+ }
+
+ /**
+ * @throws \Elastica\Exception\ClientException
+ *
+ * @return \Elastica\Connection
+ */
+ public function getConnection()
+ {
+ return $this->_strategy->getConnection($this->getConnections());
+ }
+
+ /**
+ * @param \Elastica\Connection $connection
+ * @param \Exception $e
+ * @param Client $client
+ */
+ public function onFail(Connection $connection, Exception $e, Client $client)
+ {
+ $connection->setEnabled(false);
+
+ if ($this->_callback) {
+ call_user_func($this->_callback, $connection, $e, $client);
+ }
+ }
+
+ /**
+ * @return \Elastica\Connection\Strategy\StrategyInterface
+ */
+ public function getStrategy()
+ {
+ return $this->_strategy;
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/CallbackStrategy.php b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/CallbackStrategy.php
new file mode 100644
index 00000000..ccaeb6dd
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/CallbackStrategy.php
@@ -0,0 +1,51 @@
+<?php
+namespace Elastica\Connection\Strategy;
+
+use Elastica\Exception\InvalidException;
+
+/**
+ * Description of CallbackStrategy.
+ *
+ * @author chabior
+ */
+class CallbackStrategy implements StrategyInterface
+{
+ /**
+ * @var callable
+ */
+ protected $_callback;
+
+ /**
+ * @param callable $callback
+ *
+ * @throws \Elastica\Exception\InvalidException
+ */
+ public function __construct($callback)
+ {
+ if (!self::isValid($callback)) {
+ throw new InvalidException(sprintf('Callback should be a callable, %s given!', gettype($callback)));
+ }
+
+ $this->_callback = $callback;
+ }
+
+ /**
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @return \Elastica\Connection
+ */
+ public function getConnection($connections)
+ {
+ return call_user_func_array($this->_callback, array($connections));
+ }
+
+ /**
+ * @param callable $callback
+ *
+ * @return bool
+ */
+ public static function isValid($callback)
+ {
+ return is_callable($callback);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/RoundRobin.php b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/RoundRobin.php
new file mode 100644
index 00000000..92cd570e
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/RoundRobin.php
@@ -0,0 +1,24 @@
+<?php
+namespace Elastica\Connection\Strategy;
+
+/**
+ * Description of RoundRobin.
+ *
+ * @author chabior
+ */
+class RoundRobin extends Simple
+{
+ /**
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @throws \Elastica\Exception\ClientException
+ *
+ * @return \Elastica\Connection
+ */
+ public function getConnection($connections)
+ {
+ shuffle($connections);
+
+ return parent::getConnection($connections);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/Simple.php b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/Simple.php
new file mode 100644
index 00000000..7c42dd3b
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/Simple.php
@@ -0,0 +1,30 @@
+<?php
+namespace Elastica\Connection\Strategy;
+
+use Elastica\Exception\ClientException;
+
+/**
+ * Description of SimpleStrategy.
+ *
+ * @author chabior
+ */
+class Simple implements StrategyInterface
+{
+ /**
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @throws \Elastica\Exception\ClientException
+ *
+ * @return \Elastica\Connection
+ */
+ public function getConnection($connections)
+ {
+ foreach ($connections as $connection) {
+ if ($connection->isEnabled()) {
+ return $connection;
+ }
+ }
+
+ throw new ClientException('No enabled connection');
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyFactory.php b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyFactory.php
new file mode 100644
index 00000000..7590ab11
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyFactory.php
@@ -0,0 +1,45 @@
+<?php
+namespace Elastica\Connection\Strategy;
+
+use Elastica\Exception\InvalidException;
+
+/**
+ * Description of StrategyFactory.
+ *
+ * @author chabior
+ */
+class StrategyFactory
+{
+ /**
+ * @param mixed|callable|string|StrategyInterface $strategyName
+ *
+ * @throws \Elastica\Exception\InvalidException
+ *
+ * @return \Elastica\Connection\Strategy\StrategyInterface
+ */
+ public static function create($strategyName)
+ {
+ if ($strategyName instanceof StrategyInterface) {
+ return $strategyName;
+ }
+
+ if (CallbackStrategy::isValid($strategyName)) {
+ return new CallbackStrategy($strategyName);
+ }
+
+ if (is_string($strategyName)) {
+ $requiredInterface = '\\Elastica\\Connection\\Strategy\\StrategyInterface';
+ $predefinedStrategy = '\\Elastica\\Connection\\Strategy\\'.$strategyName;
+
+ if (class_exists($predefinedStrategy) && class_implements($predefinedStrategy, $requiredInterface)) {
+ return new $predefinedStrategy();
+ }
+
+ if (class_exists($strategyName) && class_implements($strategyName, $requiredInterface)) {
+ return new $strategyName();
+ }
+ }
+
+ throw new InvalidException('Can\'t create strategy instance by given argument');
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyInterface.php b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyInterface.php
new file mode 100644
index 00000000..29bf7701
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Connection/Strategy/StrategyInterface.php
@@ -0,0 +1,17 @@
+<?php
+namespace Elastica\Connection\Strategy;
+
+/**
+ * Description of AbstractStrategy.
+ *
+ * @author chabior
+ */
+interface StrategyInterface
+{
+ /**
+ * @param array|\Elastica\Connection[] $connections
+ *
+ * @return \Elastica\Connection
+ */
+ public function getConnection($connections);
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Document.php b/vendor/ruflin/elastica/lib/Elastica/Document.php
index 3f6b88de..e82afae9 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Document.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Document.php
@@ -1,17 +1,13 @@
<?php
-
namespace Elastica;
-use Elastica\Exception\InvalidException;
use Elastica\Bulk\Action;
-use Elastica\Filter\Bool;
+use Elastica\Exception\InvalidException;
use Elastica\Exception\NotImplementedException;
/**
- * Single document stored in elastic search
+ * Single document stored in elastic search.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Document extends AbstractUpdateAction
@@ -19,7 +15,7 @@ class Document extends AbstractUpdateAction
const OP_TYPE_CREATE = Action::OP_TYPE_CREATE;
/**
- * Document data
+ * Document data.
*
* @var array Document data
*/
@@ -28,22 +24,22 @@ class Document extends AbstractUpdateAction
/**
* Whether to use this document to upsert if the document does not exist.
*
- * @var boolean
+ * @var bool
*/
protected $_docAsUpsert = false;
/**
- * @var boolean
+ * @var bool
*/
protected $_autoPopulate = false;
/**
- * Creates a new document
+ * Creates a new document.
*
- * @param int|string $id OPTIONAL $id Id is create if empty
- * @param array|string $data OPTIONAL Data array
- * @param string $type OPTIONAL Type name
- * @param string $index OPTIONAL Index name
+ * @param int|string $id OPTIONAL $id Id is create if empty
+ * @param array|string $data OPTIONAL Data array
+ * @param string $type OPTIONAL Type name
+ * @param string $index OPTIONAL Index name
*/
public function __construct($id = '', $data = array(), $type = '', $index = '')
{
@@ -55,6 +51,7 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
+ *
* @return mixed
*/
public function __get($key)
@@ -64,7 +61,7 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
- * @param mixed $value
+ * @param mixed $value
*/
public function __set($key, $value)
{
@@ -73,6 +70,7 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
+ *
* @return bool
*/
public function __isset($key)
@@ -90,22 +88,27 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
- * @return mixed
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return mixed
*/
public function get($key)
{
if (!$this->has($key)) {
throw new InvalidException("Field {$key} does not exist");
}
+
return $this->_data[$key];
}
/**
* @param string $key
- * @param mixed $value
+ * @param mixed $value
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function set($key, $value)
{
@@ -119,6 +122,7 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
+ *
* @return bool
*/
public function has($key)
@@ -128,8 +132,10 @@ class Document extends AbstractUpdateAction
/**
* @param string $key
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function remove($key)
{
@@ -142,12 +148,14 @@ class Document extends AbstractUpdateAction
}
/**
- * Adds the given key/value pair to the document
+ * Adds the given key/value pair to the document.
*
* @deprecated
- * @param string $key Document entry key
- * @param mixed $value Document entry value
- * @return \Elastica\Document
+ *
+ * @param string $key Document entry key
+ * @param mixed $value Document entry value
+ *
+ * @return $this
*/
public function add($key, $value)
{
@@ -155,7 +163,7 @@ class Document extends AbstractUpdateAction
}
/**
- * Adds a file to the index
+ * Adds a file to the index.
*
* To use this feature you have to call the following command in the
* elasticsearch directory:
@@ -165,17 +173,18 @@ class Document extends AbstractUpdateAction
* This installs the tika file analysis plugin. More infos about supported formats
* can be found here: {@link http://tika.apache.org/0.7/formats.html}
*
- * @param string $key Key to add the file to
- * @param string $filepath Path to add the file
- * @param string $mimeType OPTIONAL Header mime type
- * @return \Elastica\Document
+ * @param string $key Key to add the file to
+ * @param string $filepath Path to add the file
+ * @param string $mimeType OPTIONAL Header mime type
+ *
+ * @return $this
*/
public function addFile($key, $filepath, $mimeType = '')
{
$value = base64_encode(file_get_contents($filepath));
if (!empty($mimeType)) {
- $value = array('_content_type' => $mimeType, '_name' => $filepath, 'content' => $value,);
+ $value = array('_content_type' => $mimeType, '_name' => $filepath, '_content' => $value);
}
$this->set($key, $value);
@@ -184,11 +193,12 @@ class Document extends AbstractUpdateAction
}
/**
- * Add file content
+ * Add file content.
+ *
+ * @param string $key Document key
+ * @param string $content Raw file content
*
- * @param string $key Document key
- * @param string $content Raw file content
- * @return \Elastica\Document
+ * @return $this
*/
public function addFileContent($key, $content)
{
@@ -196,19 +206,21 @@ class Document extends AbstractUpdateAction
}
/**
- * Adds a geopoint to the document
+ * Adds a geopoint to the document.
*
* Geohashes are not yet supported
*
* @param string $key Field key
* @param float $latitude Latitude value
* @param float $longitude Longitude value
- * @link http://www.elasticsearch.org/guide/reference/mapping/geo-point-type.html
- * @return \Elastica\Document
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-geo-point-type.html
+ *
+ * @return $this
*/
public function addGeoPoint($key, $latitude, $longitude)
{
- $value = array('lat' => $latitude, 'lon' => $longitude,);
+ $value = array('lat' => $latitude, 'lon' => $longitude);
$this->set($key, $value);
@@ -216,10 +228,11 @@ class Document extends AbstractUpdateAction
}
/**
- * Overwrites the current document data with the given data
+ * Overwrites the current document data with the given data.
*
- * @param array|string $data Data array
- * @return \Elastica\Document
+ * @param array|string $data Data array
+ *
+ * @return $this
*/
public function setData($data)
{
@@ -229,7 +242,7 @@ class Document extends AbstractUpdateAction
}
/**
- * Returns the document data
+ * Returns the document data.
*
* @return array|string Document data
*/
@@ -239,36 +252,41 @@ class Document extends AbstractUpdateAction
}
/**
+ * @deprecated
+ *
* @param \Elastica\Script $data
+ *
* @throws NotImplementedException
- * @deprecated
*/
public function setScript($data)
{
- throw new NotImplementedException("setScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate");
+ throw new NotImplementedException('setScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate');
}
/**
* @throws NotImplementedException
+ *
* @deprecated
*/
public function getScript()
{
- throw new NotImplementedException("getScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate");
+ throw new NotImplementedException('getScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate');
}
/**
* @throws NotImplementedException
+ *
* @deprecated
*/
public function hasScript()
{
- throw new NotImplementedException("hasScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate");
+ throw new NotImplementedException('hasScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate');
}
/**
* @param bool $value
- * @return \Elastica\Document
+ *
+ * @return $this
*/
public function setDocAsUpsert($value)
{
@@ -278,7 +296,7 @@ class Document extends AbstractUpdateAction
}
/**
- * @return boolean
+ * @return bool
*/
public function getDocAsUpsert()
{
@@ -287,6 +305,7 @@ class Document extends AbstractUpdateAction
/**
* @param bool $autoPopulate
+ *
* @return $this
*/
public function setAutoPopulate($autoPopulate = true)
@@ -305,7 +324,8 @@ class Document extends AbstractUpdateAction
}
/**
- * Returns the document as an array
+ * Returns the document as an array.
+ *
* @return array
*/
public function toArray()
@@ -317,9 +337,11 @@ class Document extends AbstractUpdateAction
}
/**
- * @param array|\Elastica\Document $data
+ * @param array|\Elastica\Document $data
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Document
+ *
+ * @return self
*/
public static function create($data)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/Response/ActionException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/Response/ActionException.php
index 6500e040..5db0e49f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/Response/ActionException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/Response/ActionException.php
@@ -1,10 +1,8 @@
<?php
-
namespace Elastica\Exception\Bulk\Response;
-use Elastica\Exception\BulkException;
-use Elastica\Bulk\Action;
use Elastica\Bulk\Response;
+use Elastica\Exception\BulkException;
class ActionException extends BulkException
{
@@ -41,6 +39,7 @@ class ActionException extends BulkException
/**
* @param \Elastica\Bulk\Response $response
+ *
* @return string
*/
public function getErrorMessage(Response $response)
@@ -51,13 +50,13 @@ class ActionException extends BulkException
$path = '';
if (isset($data['_index'])) {
- $path.= '/' . $data['_index'];
+ $path .= '/'.$data['_index'];
}
if (isset($data['_type'])) {
- $path.= '/' . $data['_type'];
+ $path .= '/'.$data['_type'];
}
if (isset($data['_id'])) {
- $path.= '/' . $data['_id'];
+ $path .= '/'.$data['_id'];
}
$message = "$opType: $path caused $error";
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/ResponseException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/ResponseException.php
index 9df1b3e8..54b5702b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/ResponseException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/ResponseException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception\Bulk;
use Elastica\Bulk\ResponseSet;
@@ -7,16 +6,11 @@ use Elastica\Exception\Bulk\Response\ActionException;
use Elastica\Exception\BulkException;
/**
- * Bulk Response exception
- *
- * @category Xodoa
- * @package Elastica
+ * Bulk Response exception.
*/
class ResponseException extends BulkException
{
/**
- * Response
- *
* @var \Elastica\Bulk\ResponseSet ResponseSet object
*/
protected $_responseSet;
@@ -27,7 +21,7 @@ class ResponseException extends BulkException
protected $_actionExceptions = array();
/**
- * Construct Exception
+ * Construct Exception.
*
* @param \Elastica\Bulk\ResponseSet $responseSet
*/
@@ -35,8 +29,8 @@ class ResponseException extends BulkException
{
$this->_init($responseSet);
- $message = 'Error in one or more bulk request actions:' . PHP_EOL . PHP_EOL;
- $message.= $this->getActionExceptionsAsString();
+ $message = 'Error in one or more bulk request actions:'.PHP_EOL.PHP_EOL;
+ $message .= $this->getActionExceptionsAsString();
parent::__construct($message);
}
@@ -56,7 +50,7 @@ class ResponseException extends BulkException
}
/**
- * Returns bulk response set object
+ * Returns bulk response set object.
*
* @return \Elastica\Bulk\ResponseSet
*/
@@ -66,7 +60,7 @@ class ResponseException extends BulkException
}
/**
- * Returns array of failed actions
+ * Returns array of failed actions.
*
* @return array Array of failed actions
*/
@@ -96,8 +90,9 @@ class ResponseException extends BulkException
{
$message = '';
foreach ($this->getActionExceptions() as $actionException) {
- $message.= $actionException->getMessage() . PHP_EOL;
+ $message .= $actionException->getMessage().PHP_EOL;
}
+
return $message;
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/UdpException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/UdpException.php
index 0b2d4d2e..e332b92f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/UdpException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Bulk/UdpException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception\Bulk;
use Elastica\Exception\BulkException;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/BulkException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/BulkException.php
index 6d384556..121cf557 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/BulkException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/BulkException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception;
class BulkException extends \RuntimeException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/ClientException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/ClientException.php
index 00efd67d..66af363d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/ClientException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/ClientException.php
@@ -1,12 +1,9 @@
<?php
-
namespace Elastica\Exception;
/**
- * Client exception
+ * Client exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class ClientException extends \RuntimeException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/GuzzleException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/GuzzleException.php
index 645c0eff..614ad139 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/GuzzleException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/GuzzleException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception\Connection;
use Elastica\Exception\ConnectionException;
@@ -8,9 +7,8 @@ use Elastica\Response;
use GuzzleHttp\Exception\TransferException;
/**
- * Transport exception
+ * Transport exception.
*
- * @package Elastica
* @author Milan Magudia <milan@magudia.com>
*/
class GuzzleException extends ConnectionException
@@ -22,8 +20,8 @@ class GuzzleException extends ConnectionException
/**
* @param \GuzzleHttp\Exception\TransferException $guzzleException
- * @param \Elastica\Request $request
- * @param \Elastica\Response $response
+ * @param \Elastica\Request $request
+ * @param \Elastica\Response $response
*/
public function __construct(TransferException $guzzleException, Request $request = null, Response $response = null)
{
@@ -34,6 +32,7 @@ class GuzzleException extends ConnectionException
/**
* @param \GuzzleHttp\Exception\TransferException $guzzleException
+ *
* @return string
*/
public function getErrorMessage(TransferException $guzzleException)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/HttpException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/HttpException.php
index 2a36fe48..28e78e77 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/HttpException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/HttpException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception\Connection;
use Elastica\Exception\ConnectionException;
@@ -7,25 +6,23 @@ use Elastica\Request;
use Elastica\Response;
/**
- * Connection exception
+ * Connection exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class HttpException extends ConnectionException
{
/**
- * Error code / message
+ * Error code / message.
*
* @var string Error code / message
*/
protected $_error = 0;
/**
- * Construct Exception
+ * Construct Exception.
*
- * @param string $error Error
+ * @param string $error Error
* @param \Elastica\Request $request
* @param \Elastica\Response $response
*/
@@ -39,22 +36,23 @@ class HttpException extends ConnectionException
/**
* Returns the error message corresponding to the error code
- * cUrl error code reference can be found here {@link http://curl.haxx.se/libcurl/c/libcurl-errors.html}
+ * cUrl error code reference can be found here {@link http://curl.haxx.se/libcurl/c/libcurl-errors.html}.
+ *
+ * @param string $error Error code
*
- * @param string $error Error code
* @return string Error message
*/
public function getErrorMessage($error)
{
switch ($error) {
case CURLE_UNSUPPORTED_PROTOCOL:
- $error = "Unsupported protocol";
+ $error = 'Unsupported protocol';
break;
case CURLE_FAILED_INIT:
- $error = "Internal cUrl error?";
+ $error = 'Internal cUrl error?';
break;
case CURLE_URL_MALFORMAT:
- $error = "Malformed URL";
+ $error = 'Malformed URL';
break;
case CURLE_COULDNT_RESOLVE_PROXY:
$error = "Couldn't resolve proxy";
@@ -66,10 +64,10 @@ class HttpException extends ConnectionException
$error = "Couldn't connect to host, Elasticsearch down?";
break;
case 28:
- $error = "Operation timed out";
+ $error = 'Operation timed out';
break;
default:
- $error = "Unknown error:" . $error;
+ $error = 'Unknown error:'.$error;
break;
}
@@ -77,7 +75,7 @@ class HttpException extends ConnectionException
}
/**
- * Return Error code / message
+ * Return Error code / message.
*
* @return string Error code / message
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/MemcacheException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/MemcacheException.php
new file mode 100644
index 00000000..24181379
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/MemcacheException.php
@@ -0,0 +1,13 @@
+<?php
+namespace Elastica\Exception\Connection;
+
+use Elastica\Exception\ConnectionException;
+
+/**
+ * Transport exception.
+ *
+ * @author Igor Denisenko <im.denisenko@yahoo.com>
+ */
+class MemcacheException extends ConnectionException
+{
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/ThriftException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/ThriftException.php
index 0ca331c7..499cbd7d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/ThriftException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/Connection/ThriftException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception\Connection;
use Elastica\Exception\ConnectionException;
@@ -8,10 +7,8 @@ use Elastica\Response;
use Thrift\Exception\TException;
/**
- * Transport exception
+ * Transport exception.
*
- * @category Xodoa
- * @package Elastica
* @author Mikhail Shamin <munk13@gmail.com>
*/
class ThriftException extends ConnectionException
@@ -23,8 +20,8 @@ class ThriftException extends ConnectionException
/**
* @param \Thrift\Exception\TException $thriftException
- * @param \Elastica\Request $request
- * @param \Elastica\Response $response
+ * @param \Elastica\Request $request
+ * @param \Elastica\Response $response
*/
public function __construct(TException $thriftException, Request $request = null, Response $response = null)
{
@@ -35,6 +32,7 @@ class ThriftException extends ConnectionException
/**
* @param \Thrift\Exception\TException $thriftException
+ *
* @return string
*/
public function getErrorMessage(TException $thriftException)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/ConnectionException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/ConnectionException.php
index 35d60472..b2376d2f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/ConnectionException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/ConnectionException.php
@@ -1,37 +1,30 @@
<?php
-
namespace Elastica\Exception;
use Elastica\Request;
use Elastica\Response;
/**
- * Connection exception
+ * Connection exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class ConnectionException extends \RuntimeException implements ExceptionInterface
{
/**
- * Request
- *
* @var \Elastica\Request Request object
*/
protected $_request;
/**
- * Response
- *
* @var \Elastica\Response Response object
*/
protected $_response;
/**
- * Construct Exception
+ * Construct Exception.
*
- * @param string $message Message
+ * @param string $message Message
* @param \Elastica\Request $request
* @param \Elastica\Response $response
*/
@@ -44,7 +37,7 @@ class ConnectionException extends \RuntimeException implements ExceptionInterfac
}
/**
- * Returns request object
+ * Returns request object.
*
* @return \Elastica\Request Request object
*/
@@ -54,7 +47,7 @@ class ConnectionException extends \RuntimeException implements ExceptionInterfac
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/ElasticsearchException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/ElasticsearchException.php
index 0f7509f9..59cca0c6 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/ElasticsearchException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/ElasticsearchException.php
@@ -1,37 +1,29 @@
<?php
-
namespace Elastica\Exception;
/**
- * Elasticsearch exception
+ * Elasticsearch exception.
*
- * @category Xodoa
- * @package Elastica
* @author Ian Babrou <ibobrik@gmail.com>
*/
-class ElasticsearchException extends \Exception
+class ElasticsearchException extends \Exception implements ExceptionInterface
{
-
const REMOTE_TRANSPORT_EXCEPTION = 'RemoteTransportException';
/**
- * Elasticsearch exception name
- *
- * @var string|null
+ * @var string|null Elasticsearch exception name
*/
private $_exception;
/**
- * Whether exception was local to server node or remote
- *
- * @var bool
+ * @var bool Whether exception was local to server node or remote
*/
private $_isRemote = false;
/**
- * Constructs elasticsearch exception
+ * Constructs elasticsearch exception.
*
- * @param int $code Error code
+ * @param int $code Error code
* @param string $error Error message from elasticsearch
*/
public function __construct($code, $error)
@@ -41,7 +33,7 @@ class ElasticsearchException extends \Exception
}
/**
- * Parse error message from elasticsearch
+ * Parse error message from elasticsearch.
*
* @param string $error Error message
*/
@@ -62,9 +54,10 @@ class ElasticsearchException extends \Exception
}
/**
- * Extract exception name from error response
+ * Extract exception name from error response.
*
* @param string $error
+ *
* @return null|string
*/
protected function _extractException($error)
@@ -72,12 +65,12 @@ class ElasticsearchException extends \Exception
if (preg_match('/^(\w+)\[.*\]/', $error, $matches)) {
return $matches[1];
} else {
- return null;
+ return;
}
}
/**
- * Returns elasticsearch exception name
+ * Returns elasticsearch exception name.
*
* @return string|null
*/
@@ -87,7 +80,7 @@ class ElasticsearchException extends \Exception
}
/**
- * Returns whether exception was local to server node or remote
+ * Returns whether exception was local to server node or remote.
*
* @return bool
*/
@@ -95,5 +88,4 @@ class ElasticsearchException extends \Exception
{
return $this->_isRemote;
}
-
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/ExceptionInterface.php b/vendor/ruflin/elastica/lib/Elastica/Exception/ExceptionInterface.php
index 746c9c81..02f43092 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/ExceptionInterface.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/ExceptionInterface.php
@@ -1,12 +1,9 @@
<?php
-
namespace Elastica\Exception;
/**
- * General Elastica exception interface
+ * General Elastica exception interface.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
interface ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/InvalidException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/InvalidException.php
index ff4a4cd3..996a9389 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/InvalidException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/InvalidException.php
@@ -1,12 +1,9 @@
<?php
-
namespace Elastica\Exception;
/**
- * Invalid exception
+ * Invalid exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class InvalidException extends \InvalidArgumentException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/JSONParseException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/JSONParseException.php
index 3cf39911..010adf45 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/JSONParseException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/JSONParseException.php
@@ -1,11 +1,8 @@
<?php
-
namespace Elastica\Exception;
/**
- * JSON Parse exception
- *
- * @package Elastica
+ * JSON Parse exception.
*/
class JSONParseException extends \RuntimeException implements ExceptionInterface
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/NotFoundException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/NotFoundException.php
index 539b01c2..a2897fd7 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/NotFoundException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/NotFoundException.php
@@ -1,12 +1,9 @@
<?php
-
namespace Elastica\Exception;
/**
- * Not found exception
+ * Not found exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class NotFoundException extends \RuntimeException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/NotImplementedException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/NotImplementedException.php
index 49d3918b..591417b6 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/NotImplementedException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/NotImplementedException.php
@@ -1,14 +1,11 @@
<?php
-
namespace Elastica\Exception;
/**
- * Not implemented exception
+ * Not implemented exception.
*
* Is thrown if a function or feature is not implemented yet
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class NotImplementedException extends \BadMethodCallException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/PartialShardFailureException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/PartialShardFailureException.php
index f853bf96..bb3fa44a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/PartialShardFailureException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/PartialShardFailureException.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Exception;
use Elastica\JSON;
@@ -7,19 +6,16 @@ use Elastica\Request;
use Elastica\Response;
/**
- * Partial shard failure exception
+ * Partial shard failure exception.
*
- * @category Xodoa
- * @package Elastica
* @author Ian Babrou <ibobrik@gmail.com>
*/
class PartialShardFailureException extends ResponseException
{
-
/**
- * Construct Exception
+ * Construct Exception.
*
- * @param \Elastica\Request $request
+ * @param \Elastica\Request $request
* @param \Elastica\Response $response
*/
public function __construct(Request $request, Response $response)
@@ -29,5 +25,4 @@ class PartialShardFailureException extends ResponseException
$shardsStatistics = $response->getShardsStatistics();
$this->message = JSON::stringify($shardsStatistics['failed']);
}
-
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/QueryBuilderException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/QueryBuilderException.php
new file mode 100644
index 00000000..ae03c831
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/QueryBuilderException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Elastica\Exception;
+
+/**
+ * QueryBuilder exception.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class QueryBuilderException extends \RuntimeException implements ExceptionInterface
+{
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php
index 63244487..57502307 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php
@@ -1,37 +1,30 @@
<?php
-
namespace Elastica\Exception;
use Elastica\Request;
use Elastica\Response;
/**
- * Response exception
+ * Response exception.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class ResponseException extends \RuntimeException implements ExceptionInterface
{
/**
- * Request
- *
* @var \Elastica\Request Request object
*/
protected $_request = null;
/**
- * Response
- *
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Construct Exception
+ * Construct Exception.
*
- * @param \Elastica\Request $request
+ * @param \Elastica\Request $request
* @param \Elastica\Response $response
*/
public function __construct(Request $request, Response $response)
@@ -42,7 +35,7 @@ class ResponseException extends \RuntimeException implements ExceptionInterface
}
/**
- * Returns request object
+ * Returns request object.
*
* @return \Elastica\Request Request object
*/
@@ -52,7 +45,7 @@ class ResponseException extends \RuntimeException implements ExceptionInterface
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -62,14 +55,15 @@ class ResponseException extends \RuntimeException implements ExceptionInterface
}
/**
- * Returns elasticsearch exception
+ * Returns elasticsearch exception.
*
* @return ElasticsearchException
*/
- public function getElasticsearchException() {
+ public function getElasticsearchException()
+ {
$response = $this->getResponse();
$transfer = $response->getTransferInfo();
- $code = array_key_exists('http_code', $transfer) ? $transfer['http_code'] : 0;
+ $code = array_key_exists('http_code', $transfer) ? $transfer['http_code'] : 0;
return new ElasticsearchException($code, $response->getError());
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Exception/RuntimeException.php b/vendor/ruflin/elastica/lib/Elastica/Exception/RuntimeException.php
index 5ee420e1..af18faff 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Exception/RuntimeException.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Exception/RuntimeException.php
@@ -1,12 +1,9 @@
<?php
-
namespace Elastica\Exception;
/**
- * Client exception
+ * Client exception.
*
- * @category Xodoa
- * @package Elastica
* @author Mikhail Shamin <munk13@gmail.com>
*/
class RuntimeException extends \RuntimeException implements ExceptionInterface
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/AbstractFacet.php b/vendor/ruflin/elastica/lib/Elastica/Facet/AbstractFacet.php
index 25cee812..743cefe1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/AbstractFacet.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/AbstractFacet.php
@@ -1,30 +1,27 @@
<?php
-
namespace Elastica\Facet;
-use Elastica\Param;
-use Elastica\Filter\AbstractFilter;
use Elastica\Exception\InvalidException;
+use Elastica\Filter\AbstractFilter;
+use Elastica\Param;
/**
- * Abstract facet object. Should be extended by all facet types
+ * Abstract facet object. Should be extended by all facet types.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
* @author Jasper van Wanrooy <jasper@vanwanrooy.net>
+ *
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
abstract class AbstractFacet extends Param
{
/**
- * Holds the name of the facet.
- * @var string
+ * @var string Holds the name of the facet.
*/
protected $_name = '';
/**
- * Holds all facet parameters.
- * @var array
+ * @var array Holds all facet parameters.
*/
protected $_facet = array();
@@ -42,9 +39,11 @@ abstract class AbstractFacet extends Param
* Sets the name of the facet. It is automatically set by
* the constructor.
*
- * @param string $name The name of the facet.
- * @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Facet\AbstractFacet
+ * @param string $name The name of the facet.
+ *
+ * @throws \Elastica\Exception\InvalidException If name is empty
+ *
+ * @return $this
*/
public function setName($name)
{
@@ -69,8 +68,9 @@ abstract class AbstractFacet extends Param
/**
* Sets a filter for this facet.
*
- * @param \Elastica\Filter\AbstractFilter $filter A filter to apply on the facet.
- * @return \Elastica\Facet\AbstractFacet
+ * @param \Elastica\Filter\AbstractFilter $filter A filter to apply on the facet.
+ *
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
@@ -82,8 +82,9 @@ abstract class AbstractFacet extends Param
* current search query. When not set, it defaults to the
* Elasticsearch default value.
*
- * @param bool $global Flag to either run the facet globally.
- * @return \Elastica\Facet\AbstractFacet
+ * @param bool $global Flag to either run the facet globally.
+ *
+ * @return $this
*/
public function setGlobal($global = true)
{
@@ -91,10 +92,11 @@ abstract class AbstractFacet extends Param
}
/**
- * Sets the path to the nested document
+ * Sets the path to the nested document.
*
- * @param string $nestedPath Nested path
- * @return \Elastica\Facet\AbstractFacet
+ * @param string $nestedPath Nested path
+ *
+ * @return $this
*/
public function setNested($nestedPath)
{
@@ -102,10 +104,11 @@ abstract class AbstractFacet extends Param
}
/**
- * Sets the scope
+ * Sets the scope.
+ *
+ * @param string $scope Scope
*
- * @param string $scope Scope
- * @return \Elastica\Facet\AbstractFacet
+ * @return $this
*/
public function setScope($scope)
{
@@ -128,9 +131,10 @@ abstract class AbstractFacet extends Param
* Sets a param for the facet. Each facet implementation needs to take
* care of handling their own params.
*
- * @param string $key The key of the param to set.
- * @param mixed $value The value of the param.
- * @return \Elastica\Facet\AbstractFacet
+ * @param string $key The key of the param to set.
+ * @param mixed $value The value of the param.
+ *
+ * @return $this
*/
protected function _setFacetParam($key, $value)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/DateHistogram.php b/vendor/ruflin/elastica/lib/Elastica/Facet/DateHistogram.php
index 803f54a3..c47eddab 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/DateHistogram.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/DateHistogram.php
@@ -1,23 +1,23 @@
<?php
-
namespace Elastica\Facet;
/**
* Implements the Date Histogram facet.
*
- * @category Xodoa
- * @package Elastica
* @author Raul Martinez Jr <juneym@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/date-histogram-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-date-histogram-facet.html
* @link https://github.com/elasticsearch/elasticsearch/issues/591
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class DateHistogram extends Histogram
{
/**
- * Set the time_zone parameter
+ * Set the time_zone parameter.
+ *
+ * @param string $tzOffset
*
- * @param string $tzOffset
- * @return \Elastica\Facet\DateHistogram
+ * @return $this
*/
public function setTimezone($tzOffset)
{
@@ -25,16 +25,30 @@ class DateHistogram extends Histogram
}
/**
+ * Set the factor parameter.
+ *
+ * @param int $factor
+ *
+ * @return $this
+ */
+ public function setFactor($factor)
+ {
+ return $this->setParam('factor', $factor);
+ }
+
+ /**
* 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 range in the abstract as param.
*/
$this->_setFacetParam('date_histogram', $this->_params);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Filter.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Filter.php
index ed6f28b7..26f032b4 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Filter.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Filter.php
@@ -1,24 +1,24 @@
<?php
-
namespace Elastica\Facet;
use Elastica\Filter\AbstractFilter;
/**
- * Filter facet
+ * Filter facet.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/filter-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-filter-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Filter extends AbstractFacet
{
/**
* Set the filter for the facet.
*
- * @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Facet\Filter
+ * @param \Elastica\Filter\AbstractFilter $filter
+ *
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/GeoCluster.php b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoCluster.php
index a6f5e9ed..71fa5094 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/GeoCluster.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoCluster.php
@@ -1,41 +1,49 @@
<?php
-
namespace Elastica\Facet;
/**
* Implements the Geo Cluster facet.
*
- * @category Xodoa
- * @package Elastica
* @author Konstantin Nikiforov <konstantin.nikiforov@gmail.com>
+ *
* @link https://github.com/zenobase/geocluster-facet
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
-class GeoCluster extends AbstractFacet {
-
+class GeoCluster extends AbstractFacet
+{
/**
* @param string $fieldName
+ *
* @return $this
*/
- public function setField($fieldName) {
+ public function setField($fieldName)
+ {
$this->setParam('field', $fieldName);
+
return $this;
}
/**
- * @param double $factor
+ * @param float $factor
+ *
* @return $this
*/
- public function setFactor($factor){
+ public function setFactor($factor)
+ {
$this->setParam('factor', $factor);
+
return $this;
}
/**
- * @param boolean $showIds
+ * @param bool $showIds
+ *
* @return $this
*/
- public function setShowIds($showIds) {
+ public function setShowIds($showIds)
+ {
$this->setParam('showIds', $showIds);
+
return $this;
}
@@ -44,11 +52,15 @@ class GeoCluster extends AbstractFacet {
* 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(){
- $this->_setFacetParam ('geo_cluster', $this->_params);
+ public function toArray()
+ {
+ $this->_setFacetParam('geo_cluster', $this->_params);
+
return parent::toArray();
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php
index 35537986..664d33a6 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/GeoDistance.php
@@ -1,14 +1,13 @@
<?php
-
namespace Elastica\Facet;
/**
* Implements the Geo Distance facet.
*
- * @category Xodoa
- * @package Elastica
* @author Gerard A. Matthew <gerard.matthew@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/geo-distance-facet.html
+ *
+ * @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
{
@@ -20,10 +19,11 @@ class GeoDistance extends AbstractFacet
* array('from' => 20, 'to' => 70),
* array('from' => 70, 'to' => 120),
* array('from' => 150)
- * )
+ * ).
+ *
+ * @param array $ranges Numerical array with range definitions.
*
- * @param array $ranges Numerical array with range definitions.
- * @return \Elastica\Facet\GeoDistance
+ * @return $this
*/
public function setRanges(array $ranges)
{
@@ -33,16 +33,17 @@ class GeoDistance extends AbstractFacet
/**
* 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 \Elastica\Facet\GeoDistance
+ * @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,
+ 'lat' => $latitude,
+ 'lon' => $longitude,
));
}
@@ -51,15 +52,17 @@ class GeoDistance extends AbstractFacet
* 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);
+ $this->_setFacetParam('geo_distance', $this->_params);
return parent::toArray();
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Histogram.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Histogram.php
index 68be6757..1b76ea89 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Histogram.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Histogram.php
@@ -1,22 +1,22 @@
<?php
-
namespace Elastica\Facet;
/**
* Implements the Histogram facet.
*
- * @category Xodoa
- * @package Elastica
* @author Raul Martinez Jr <juneym@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/histogram-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-histogram-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Histogram extends AbstractFacet
{
/**
- * Sets the field for histogram
+ * Sets the field for histogram.
+ *
+ * @param string $field The name of the field for the histogram
*
- * @param string $field The name of the field for the histogram
- * @return \Elastica\Facet\Histogram
+ * @return $this
*/
public function setField($field)
{
@@ -24,10 +24,11 @@ class Histogram extends AbstractFacet
}
/**
- * Set the value for interval
+ * Set the value for interval.
*
- * @param string $interval
- * @return \Elastica\Facet\Histogram
+ * @param string $interval
+ *
+ * @return $this
*/
public function setInterval($interval)
{
@@ -35,11 +36,12 @@ class Histogram extends AbstractFacet
}
/**
- * Set the fields for key_field and value_field
+ * Set the fields for key_field and value_field.
+ *
+ * @param string $keyField Key field
+ * @param string $valueField Value field
*
- * @param string $keyField Key field
- * @param string $valueField Value field
- * @return \Elastica\Facet\Histogram
+ * @return $this
*/
public function setKeyValueFields($keyField, $valueField)
{
@@ -49,9 +51,10 @@ class Histogram extends AbstractFacet
/**
* Sets the key and value for this facet by script.
*
- * @param string $keyScript Script to check whether it falls into the range.
- * @param string $valueScript Script to use for statistical calculations.
- * @return \Elastica\Facet\Histogram
+ * @param string $keyScript Script to check whether it falls into the range.
+ * @param string $valueScript Script to use for statistical calculations.
+ *
+ * @return $this
*/
public function setKeyValueScripts($keyScript, $valueScript)
{
@@ -60,10 +63,11 @@ class Histogram extends AbstractFacet
}
/**
- * Set the "params" essential to the a script
+ * Set the "params" essential to the a script.
+ *
+ * @param array $params Associative array (key/value pair)
*
- * @param array $params Associative array (key/value pair)
- * @return \Elastica\Facet\Histogram
+ * @return $this
*/
public function setScriptParams(array $params)
{
@@ -75,12 +79,14 @@ class Histogram extends AbstractFacet
* 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 range in the abstract as param.
*/
$this->_setFacetParam('histogram', $this->_params);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Query.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Query.php
index d43a2375..522090d5 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Query.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Query.php
@@ -1,24 +1,24 @@
<?php
-
namespace Elastica\Facet;
use Elastica\Query\AbstractQuery;
/**
- * Query facet
+ * Query facet.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/query-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-query-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Query extends AbstractFacet
{
/**
* Set the query for the facet.
*
- * @param \Elastica\Query\AbstractQuery $query
- * @return \Elastica\Facet\Query
+ * @param \Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery(AbstractQuery $query)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Range.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Range.php
index 194f611a..f81caf3d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Range.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Range.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Facet;
use Elastica\Exception\InvalidException;
@@ -7,18 +6,19 @@ use Elastica\Exception\InvalidException;
/**
* Implements the range facet.
*
- * @category Xodoa
- * @package Elastica
* @author Jasper van Wanrooy <jasper@vanwanrooy.net>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/range-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-range-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Range extends AbstractFacet
{
/**
* Sets the field for the range.
*
- * @param string $field The name of the field for range.
- * @return \Elastica\Facet\Range
+ * @param string $field The name of the field for range.
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -28,9 +28,10 @@ class Range extends AbstractFacet
/**
* Sets the fields by their separate key and value fields.
*
- * @param string $keyField The key_field param for the range.
- * @param string $valueField The key_value param for the range.
- * @return \Elastica\Facet\Range
+ * @param string $keyField The key_field param for the range.
+ * @param string $valueField The key_value param for the range.
+ *
+ * @return $this
*/
public function setKeyValueFields($keyField, $valueField)
{
@@ -44,7 +45,7 @@ class Range extends AbstractFacet
* @param string $keyScript Script to check whether it falls into the range.
* @param string $valueScript Script to use for statistical calculations.
*
- * @return \Elastica\Facet\Range
+ * @return $this
*/
public function setKeyValueScripts($keyScript, $valueScript)
{
@@ -59,10 +60,11 @@ class Range extends AbstractFacet
* array('from' => 20, 'to' 70),
* array('from' => 70, 'to' => 120),
* array('from' => 150)
- * )
+ * ).
*
- * @param array $ranges Numerical array with range definitions.
- * @return \Elastica\Facet\Range
+ * @param array $ranges Numerical array with range definitions.
+ *
+ * @return $this
*/
public function setRanges(array $ranges)
{
@@ -72,9 +74,10 @@ class Range extends AbstractFacet
/**
* Adds a range to the range facet.
*
- * @param mixed $from The from for the range.
- * @param mixed $to The to for the range.
- * @return \Elastica\Facet\Range
+ * @param mixed $from The from for the range.
+ * @param mixed $to The to for the range.
+ *
+ * @return $this
*/
public function addRange($from = null, $to = null)
{
@@ -99,12 +102,14 @@ class Range extends AbstractFacet
* 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()
{
- /**
+ /*
* Check the facet for validity.
* There are three ways to set the key and value field for the range:
* - a single field for both key and value; or
@@ -128,7 +133,7 @@ class Range extends AbstractFacet
throw new InvalidException('Either field, key_field and key_value or key_script and value_script should be set.');
}
- /**
+ /*
* Set the range in the abstract as param.
*/
$this->_setFacetParam('range', $this->_params);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Statistical.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Statistical.php
index 71507b8f..bb4eef8b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Statistical.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Statistical.php
@@ -1,22 +1,22 @@
<?php
-
namespace Elastica\Facet;
/**
* Implements the statistical facet.
*
- * @category Xodoa
- * @package Elastica
* @author Robert Katzki <robert@katzki.de>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/statistical-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-statistical-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Statistical extends AbstractFacet
{
/**
* Sets the field for the statistical query.
*
- * @param string $field The field name for the statistical query.
- * @return \Elastica\Facet\Statistical
+ * @param string $field The field name for the statistical query.
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -26,8 +26,9 @@ class Statistical extends AbstractFacet
/**
* Sets multiple fields for the statistical query.
*
- * @param array $fields Numerical array with the fields for the statistical query.
- * @return \Elastica\Facet\Statistical
+ * @param array $fields Numerical array with the fields for the statistical query.
+ *
+ * @return $this
*/
public function setFields(array $fields)
{
@@ -35,10 +36,11 @@ class Statistical extends AbstractFacet
}
/**
- * Sets a script to calculate statistical information
+ * Sets a script to calculate statistical information.
+ *
+ * @param string $script The script to do calculations on the statistical values
*
- * @param string $script The script to do calculations on the statistical values
- * @return \Elastica\Facet\Statistical
+ * @return $this
*/
public function setScript($script)
{
@@ -50,6 +52,7 @@ class Statistical extends AbstractFacet
* facet definition of the parent.
*
* @see \Elastica\Facet\AbstractFacet::toArray()
+ *
* @return array
*/
public function toArray()
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/Terms.php b/vendor/ruflin/elastica/lib/Elastica/Facet/Terms.php
index c1dab800..6af8867b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/Terms.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/Terms.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Facet;
use Elastica\Exception\InvalidException;
@@ -8,11 +7,11 @@ use Elastica\Script;
/**
* Implements the terms facet.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
* @author Jasper van Wanrooy <jasper@vanwanrooy.net>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/terms-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-terms-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class Terms extends AbstractFacet
{
@@ -27,8 +26,9 @@ class Terms extends AbstractFacet
/**
* Sets the field for the terms.
*
- * @param string $field The field name for the terms.
- * @return \Elastica\Facet\Terms
+ * @param string $field The field name for the terms.
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -38,8 +38,9 @@ class Terms extends AbstractFacet
/**
* Sets the script for the term.
*
- * @param string $script The script for the term.
- * @return \Elastica\Facet\Terms
+ * @param string $script The script for the term.
+ *
+ * @return $this
*/
public function setScript($script)
{
@@ -54,8 +55,9 @@ class Terms extends AbstractFacet
/**
* Sets multiple fields for the terms.
*
- * @param array $fields Numerical array with the fields for the terms.
- * @return \Elastica\Facet\Terms
+ * @param array $fields Numerical array with the fields for the terms.
+ *
+ * @return $this
*/
public function setFields(array $fields)
{
@@ -66,8 +68,9 @@ class Terms extends AbstractFacet
* Sets the flag to return all available terms. When they
* don't have a hit, they have a count of zero.
*
- * @param bool $allTerms Flag to fetch all terms.
- * @return \Elastica\Facet\Terms
+ * @param bool $allTerms Flag to fetch all terms.
+ *
+ * @return $this
*/
public function setAllTerms($allTerms)
{
@@ -78,14 +81,16 @@ class Terms extends AbstractFacet
* Sets the ordering type for this facet. Elasticsearch
* internal default is count.
*
- * @param string $type The order type to set use for sorting of the terms.
+ * @param string $type The order type to set use for sorting of the terms.
+ *
* @throws \Elastica\Exception\InvalidException When an invalid order type was set.
- * @return \Elastica\Facet\Terms
+ *
+ * @return $this
*/
public function setOrder($type)
{
if (!in_array($type, $this->_orderTypes)) {
- throw new InvalidException('Invalid order type: ' . $type);
+ throw new InvalidException('Invalid order type: '.$type);
}
return $this->setParam('order', $type);
@@ -94,8 +99,9 @@ class Terms extends AbstractFacet
/**
* Set an array with terms which are omitted in the search.
*
- * @param array $exclude Numerical array which includes all terms which needs to be ignored.
- * @return \Elastica\Facet\Terms
+ * @param array $exclude Numerical array which includes all terms which needs to be ignored.
+ *
+ * @return $this
*/
public function setExclude(array $exclude)
{
@@ -105,8 +111,9 @@ class Terms extends AbstractFacet
/**
* Sets the amount of terms to be returned.
*
- * @param int $size The amount of terms to be returned.
- * @return \Elastica\Facet\Terms
+ * @param int $size The amount of terms to be returned.
+ *
+ * @return $this
*/
public function setSize($size)
{
@@ -118,6 +125,7 @@ class Terms extends AbstractFacet
* facet definition of the parent.
*
* @see \Elastica\Facet\AbstractFacet::toArray()
+ *
* @return array
*/
public function toArray()
diff --git a/vendor/ruflin/elastica/lib/Elastica/Facet/TermsStats.php b/vendor/ruflin/elastica/lib/Elastica/Facet/TermsStats.php
index 61c6b39e..22d284c5 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Facet/TermsStats.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Facet/TermsStats.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Facet;
use Elastica\Exception\InvalidException;
@@ -7,14 +6,13 @@ use Elastica\Exception\InvalidException;
/**
* Implements the statistical facet on a per term basis.
*
- * @category Xodoa
- * @package Elastica
* @author Tom Michaelis <tom.michaelis@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/facets/terms-stats-facet.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets-terms-stats-facet.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
class TermsStats extends AbstractFacet
{
-
/**
* Holds the types of ordering which are allowed
* by Elasticsearch.
@@ -23,63 +21,69 @@ class TermsStats extends AbstractFacet
*/
protected $_orderTypes = array('term', 'reverse_term', 'count', 'reverse_count',
'total', 'reverse_total', 'min', 'reverse_min', 'max', 'reverse_max', 'mean',
- 'reverse_mean');
+ 'reverse_mean', );
/**
* Sets the key field for the query.
*
- * @param string $keyField The key field name for the query.
- * @return \Elastica\Facet\TermsStats
+ * @param string $keyField The key field name for the query.
+ *
+ * @return $this
*/
- public function setKeyField( $keyField )
+ public function setKeyField($keyField)
{
- return $this->setParam( 'key_field', $keyField );
+ return $this->setParam('key_field', $keyField);
}
/**
- * Sets a script to calculate statistical information on a per term basis
+ * Sets a script to calculate statistical information on a per term basis.
+ *
+ * @param string $valueScript The script to do calculations on the statistical values
*
- * @param string $valueScript The script to do calculations on the statistical values
- * @return \Elastica\Facet\TermsStats
+ * @return $this
*/
- public function setValueScript( $valueScript )
+ public function setValueScript($valueScript)
{
- return $this->setParam( 'value_script', $valueScript );
+ return $this->setParam('value_script', $valueScript);
}
/**
* Sets the ordering type for this facet. Elasticsearch
* internal default is count.
*
- * @param string $type The order type to set use for sorting of the terms.
+ * @param string $type The order type to set use for sorting of the terms.
+ *
* @throws \Elastica\Exception\InvalidException When an invalid order type was set.
- * @return \Elastica\Facet\TermsStats
+ *
+ * @return $this
*/
public function setOrder($type)
{
if (!in_array($type, $this->_orderTypes)) {
- throw new InvalidException('Invalid order type: ' . $type);
+ throw new InvalidException('Invalid order type: '.$type);
}
return $this->setParam('order', $type);
}
/**
- * Sets a field to compute basic statistical results on
+ * Sets a field to compute basic statistical results on.
+ *
+ * @param string $valueField The field to compute statistical values for
*
- * @param string $valueField The field to compute statistical values for
- * @return \Elastica\Facet\TermsStats
+ * @return $this
*/
- public function setValueField( $valueField )
+ public function setValueField($valueField)
{
- return $this->setParam( 'value_field', $valueField );
+ return $this->setParam('value_field', $valueField);
}
/**
* Sets the amount of terms to be returned.
*
- * @param int $size The amount of terms to be returned.
- * @return \Elastica\Facet\Terms
+ * @param int $size The amount of terms to be returned.
+ *
+ * @return $this
*/
public function setSize($size)
{
@@ -91,13 +95,13 @@ class TermsStats extends AbstractFacet
* facet definition of the parent.
*
* @see \Elastica\Facet\AbstractFacet::toArray()
+ *
* @return array
*/
public function toArray()
{
- $this->_setFacetParam( 'terms_stats', $this->_params );
+ $this->_setFacetParam('terms_stats', $this->_params);
return parent::toArray();
}
-
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractFilter.php b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractFilter.php
index 665f155f..7c7dc4f7 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractFilter.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractFilter.php
@@ -1,25 +1,24 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
use Elastica\Param;
/**
- * Abstract filter object. Should be extended by all filter types
+ * Abstract filter object. Should be extended by all filter types.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filters.html
*/
abstract class AbstractFilter extends Param
{
/**
- * Sets the filter cache
+ * Sets the filter cache.
+ *
+ * @param bool $cached Cached
*
- * @param boolean $cached Cached
- * @return \Elastica\Filter\AbstractFilter
+ * @return $this
*/
public function setCached($cached = true)
{
@@ -27,11 +26,13 @@ abstract class AbstractFilter extends Param
}
/**
- * Sets the filter cache key
+ * Sets the filter cache key.
*
- * @param string $cacheKey Cache key
- * @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Filter\AbstractFilter
+ * @param string $cacheKey Cache key
+ *
+ * @throws \Elastica\Exception\InvalidException If given key is empty
+ *
+ * @return $this
*/
public function setCacheKey($cacheKey)
{
@@ -45,10 +46,11 @@ abstract class AbstractFilter extends Param
}
/**
- * Sets the filter name
+ * Sets the filter name.
+ *
+ * @param string $name Name
*
- * @param string $name Name
- * @return \Elastica\Filter\AbstractFilter
+ * @return $this
*/
public function setName($name)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoDistance.php b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoDistance.php
index 997ceab7..b208afb4 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoDistance.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoDistance.php
@@ -1,25 +1,22 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
/**
- * Geo distance filter
+ * Geo distance filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-distance-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-filter.html
*/
abstract class AbstractGeoDistance extends AbstractFilter
{
-
const LOCATION_TYPE_GEOHASH = 'geohash';
const LOCATION_TYPE_LATLON = 'latlon';
/**
- * Location type
+ * Location type.
*
* Decides if this filter uses latitude/longitude or geohash for the location.
* Values are "latlon" or "geohash".
@@ -29,38 +26,39 @@ abstract class AbstractGeoDistance extends AbstractFilter
protected $_locationType = null;
/**
- * Key
+ * Key.
*
* @var string
*/
protected $_key = null;
/**
- * Latitude
+ * Latitude.
*
* @var float
*/
protected $_latitude = null;
/**
- * Longitude
+ * Longitude.
*
* @var float
*/
protected $_longitude = null;
/**
- * Geohash
+ * Geohash.
*
* @var string
*/
protected $_geohash = null;
/**
- * Create GeoDistance object
+ * Create GeoDistance object.
+ *
+ * @param string $key Key
+ * @param array|string $location Location as array or geohash: array('lat' => 48.86, 'lon' => 2.35) OR 'drm3btev3e86'
*
- * @param string $key Key
- * @param array|string $location Location as array or geohash: array('lat' => 48.86, 'lon' => 2.35) OR 'drm3btev3e86'
* @internal param string $distance Distance
*/
public function __construct($key, $location)
@@ -71,8 +69,9 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @param string $key
- * @return \Elastica\Filter\AbstractGeoDistance current filter
+ * @param string $key
+ *
+ * @return $this
*/
public function setKey($key)
{
@@ -82,9 +81,11 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @param array|string $location
- * @return \Elastica\Filter\AbstractGeoDistance
+ * @param array|string $location
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function setLocation($location)
{
@@ -113,8 +114,9 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @param float $latitude
- * @return \Elastica\Filter\AbstractGeoDistance current filter
+ * @param float $latitude
+ *
+ * @return $this
*/
public function setLatitude($latitude)
{
@@ -125,8 +127,9 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @param float $longitude
- * @return \Elastica\Filter\AbstractGeoDistance current filter
+ * @param float $longitude
+ *
+ * @return $this
*/
public function setLongitude($longitude)
{
@@ -137,8 +140,9 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @param string $geohash
- * @return \Elastica\Filter\AbstractGeoDistance current filter
+ * @param string $geohash
+ *
+ * @return $this
*/
public function setGeohash($geohash)
{
@@ -149,8 +153,9 @@ abstract class AbstractGeoDistance extends AbstractFilter
}
/**
- * @return array|string
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return array|string
*/
protected function _getLocationData()
{
@@ -179,7 +184,10 @@ abstract class AbstractGeoDistance extends AbstractFilter
/**
* @see \Elastica\Param::toArray()
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return array
*/
public function toArray()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoShape.php b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoShape.php
index 3585293b..4f5c0f93 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoShape.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractGeoShape.php
@@ -1,32 +1,30 @@
<?php
-
namespace Elastica\Filter;
/**
- * geo_shape filter
+ * geo_shape filter.
*
* Filter pre-indexed shape definitions
*
- * @category Xodoa
- * @package Elastica
* @author Bennie Krijger <benniekrijger@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-shape-filter/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html
*/
abstract class AbstractGeoShape extends AbstractFilter
{
- const RELATION_INTERSECT = 'intersects';
- const RELATION_DISJOINT = 'disjoint';
- const RELATION_CONTAINS = 'within';
+ const RELATION_INTERSECT = 'intersects';
+ const RELATION_DISJOINT = 'disjoint';
+ const RELATION_CONTAINS = 'within';
/**
- * @var string $_path
+ * @var string
*
* elasticsearch path of the pre-indexed shape
*/
protected $_path;
/**
- * @var string $_relation
+ * @var string
*
* the relation of the 2 shaped: intersects, disjoint, within
*/
@@ -34,10 +32,14 @@ abstract class AbstractGeoShape extends AbstractFilter
/**
* @param string $relation
+ *
+ * @return $this
*/
public function setRelation($relation)
{
$this->_relation = $relation;
+
+ return $this;
}
/**
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractMulti.php b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractMulti.php
index 53ef74cf..06f6daea 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractMulti.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/AbstractMulti.php
@@ -1,27 +1,36 @@
<?php
-
namespace Elastica\Filter;
/**
- * Multi Abstract filter object. Should be extended by filter types composed of an array of sub filters
+ * Multi Abstract filter object. Should be extended by filter types composed of an array of sub filters.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
abstract class AbstractMulti extends AbstractFilter
{
/**
- * Filters
+ * Filters.
+ *
* @var array
*/
protected $_filters = array();
/**
- * Add filter
+ * @param \Elastica\Filter\AbstractFilter $filters
+ */
+ public function __construct(array $filters = array())
+ {
+ if (!empty($filters)) {
+ $this->setFilters($filters);
+ }
+ }
+
+ /**
+ * Add filter.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter
*
- * @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Filter\AbstractMulti
+ * @return $this
*/
public function addFilter(AbstractFilter $filter)
{
@@ -31,10 +40,11 @@ abstract class AbstractMulti extends AbstractFilter
}
/**
- * Set filters
+ * Set filters.
*
- * @param array $filters
- * @return \Elastica\Filter\AbstractMulti
+ * @param array $filters
+ *
+ * @return $this
*/
public function setFilters(array $filters)
{
@@ -57,6 +67,8 @@ abstract class AbstractMulti extends AbstractFilter
/**
* @see \Elastica\Param::toArray()
+ *
+ * @return array
*/
public function toArray()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Bool.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Bool.php
index aff708f8..0d30f83f 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Bool.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Bool.php
@@ -1,146 +1,15 @@
<?php
-
namespace Elastica\Filter;
-use Elastica\Exception\InvalidException;
-
/**
- * Bool Filter
+ * Bool Filter.
+ *
+ * This class is for backward compatibility reason for all php < 7 versions. For PHP 7 and above use BoolFilter as Bool is reserved.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html
*/
-class Bool extends AbstractFilter
+class Bool extends BoolFilter
{
- /**
- * @var float
- */
- protected $_boost = 1.0;
-
- /**
- * Must
- *
- * @var array
- */
- protected $_must = array();
-
- /**
- * Should
- *
- * @var array
- */
- protected $_should = array();
-
- /**
- * Must not
- *
- * @var array
- */
- protected $_mustNot = array();
-
- /**
- * Adds should filter
- *
- * @param array|\Elastica\Filter\AbstractFilter $args Filter data
- * @return \Elastica\Filter\Bool Current object
- */
- public function addShould($args)
- {
- return $this->_addFilter('should', $args);
- }
-
- /**
- * Adds must filter
- *
- * @param array|\Elastica\Filter\AbstractFilter $args Filter data
- * @return \Elastica\Filter\Bool Current object
- */
- public function addMust($args)
- {
- return $this->_addFilter('must', $args);
- }
-
- /**
- * Adds mustNot filter
- *
- * @param array|\Elastica\Filter\AbstractFilter $args Filter data
- * @return \Elastica\Filter\Bool Current object
- */
- public function addMustNot($args)
- {
- return $this->_addFilter('mustNot', $args);
- }
-
- /**
- * Adds general filter based on type
- *
- * @param string $type Filter type
- * @param array|\Elastica\Filter\AbstractFilter $args Filter data
- * @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Filter\Bool Current object
- */
- protected function _addFilter($type, $args)
- {
- if ($args instanceof AbstractFilter) {
- $args = $args->toArray();
- }
- else if (!is_array($args)) {
- throw new InvalidException('Invalid parameter. Has to be array or instance of Elastica\Filter');
- }
- else{
- $parsedArgs = array();
- foreach($args as $filter){
- if($filter instanceof AbstractFilter){
- $parsedArgs[] = $filter->toArray();
- }
- }
- $args = $parsedArgs;
- }
-
- $varName = '_' . $type;
- $this->{$varName}[] = $args;
-
- return $this;
- }
-
- /**
- * Converts bool filter to array
- *
- * @see \Elastica\Filter\AbstractFilter::toArray()
- * @return array Filter array
- */
- public function toArray()
- {
- $args = array();
-
- if (!empty($this->_must)) {
- $args['bool']['must'] = $this->_must;
- }
-
- if (!empty($this->_should)) {
- $args['bool']['should'] = $this->_should;
- }
-
- if (!empty($this->_mustNot)) {
- $args['bool']['must_not'] = $this->_mustNot;
- }
-
- return $args;
- }
-
- /**
- * Sets the boost value for this filter
- *
- * @param float $boost Boost
- * @return \Elastica\Filter\Bool Current object
- */
- public function setBoost($boost)
- {
- $this->_boost = $boost;
-
- return $this;
- }
-
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolAnd.php b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolAnd.php
index 2fd19f8e..8a08ea9c 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolAnd.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolAnd.php
@@ -1,14 +1,12 @@
<?php
-
namespace Elastica\Filter;
/**
- * And Filter
+ * And Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Lee Parker, Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/and-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-and-filter.html
*/
class BoolAnd extends AbstractMulti
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolFilter.php b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolFilter.php
new file mode 100644
index 00000000..5a488b77
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolFilter.php
@@ -0,0 +1,133 @@
+<?php
+namespace Elastica\Filter;
+
+use Elastica\Exception\InvalidException;
+
+/**
+ * Bool Filter.
+ *
+ * @author Nicolas Ruflin <spam@ruflin.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html
+ */
+class BoolFilter extends AbstractFilter
+{
+ /**
+ * Must.
+ *
+ * @var array
+ */
+ protected $_must = array();
+
+ /**
+ * Should.
+ *
+ * @var array
+ */
+ protected $_should = array();
+
+ /**
+ * Must not.
+ *
+ * @var array
+ */
+ protected $_mustNot = array();
+
+ /**
+ * Adds should filter.
+ *
+ * @param array|\Elastica\Filter\AbstractFilter $args Filter data
+ *
+ * @return $this
+ */
+ public function addShould($args)
+ {
+ return $this->_addFilter('should', $args);
+ }
+
+ /**
+ * Adds must filter.
+ *
+ * @param array|\Elastica\Filter\AbstractFilter $args Filter data
+ *
+ * @return $this
+ */
+ public function addMust($args)
+ {
+ return $this->_addFilter('must', $args);
+ }
+
+ /**
+ * Adds mustNot filter.
+ *
+ * @param array|\Elastica\Filter\AbstractFilter $args Filter data
+ *
+ * @return $this
+ */
+ public function addMustNot($args)
+ {
+ return $this->_addFilter('mustNot', $args);
+ }
+
+ /**
+ * Adds general filter based on type.
+ *
+ * @param string $type Filter type
+ * @param array|\Elastica\Filter\AbstractFilter $args Filter data
+ *
+ * @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
+ */
+ protected function _addFilter($type, $args)
+ {
+ if ($args instanceof AbstractFilter) {
+ $args = $args->toArray();
+ } elseif (!is_array($args)) {
+ throw new InvalidException('Invalid parameter. Has to be array or instance of Elastica\Filter');
+ } else {
+ $parsedArgs = array();
+ foreach ($args as $filter) {
+ if ($filter instanceof AbstractFilter) {
+ $parsedArgs[] = $filter->toArray();
+ }
+ }
+ $args = $parsedArgs;
+ }
+
+ $varName = '_'.$type;
+ $this->{$varName}[] = $args;
+
+ return $this;
+ }
+
+ /**
+ * Converts bool filter to array.
+ *
+ * @see \Elastica\Filter\AbstractFilter::toArray()
+ *
+ * @return array Filter array
+ */
+ public function toArray()
+ {
+ $args = array();
+
+ if (!empty($this->_must)) {
+ $args['bool']['must'] = $this->_must;
+ }
+
+ if (!empty($this->_should)) {
+ $args['bool']['should'] = $this->_should;
+ }
+
+ if (!empty($this->_mustNot)) {
+ $args['bool']['must_not'] = $this->_mustNot;
+ }
+
+ if (isset($args['bool'])) {
+ $args['bool'] = array_merge($args['bool'], $this->getParams());
+ }
+
+ return $args;
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolNot.php b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolNot.php
index 1778997b..81db7f65 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolNot.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolNot.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Filter;
/**
- * Not Filter
+ * Not Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Lee Parker, Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/not-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-not-filter.html
*/
class BoolNot extends AbstractFilter
{
/**
- * Creates Not filter query
+ * Creates Not filter query.
*
* @param \Elastica\Filter\AbstractFilter $filter Filter object
*/
@@ -23,10 +21,11 @@ class BoolNot extends AbstractFilter
}
/**
- * Set filter
+ * Set filter.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter
*
- * @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Filter\BoolNot
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolOr.php b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolOr.php
index 6f63fc30..9091e496 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/BoolOr.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/BoolOr.php
@@ -1,14 +1,12 @@
<?php
-
namespace Elastica\Filter;
/**
- * Or Filter
+ * Or Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/or-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-or-filter.html
*/
class BoolOr extends AbstractMulti
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Exists.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Exists.php
index 6fe43e3d..d6dc9962 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Exists.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Exists.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Filter;
/**
- * Exists query
+ * Exists query.
*
- * @category Xodoa
- * @package Elastica
* @author Oleg Cherniy <oleg.cherniy@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/exists-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-filter.html
*/
class Exists extends AbstractFilter
{
/**
- * Construct exists filter
+ * Construct exists filter.
*
* @param string $field
*/
@@ -23,10 +21,11 @@ class Exists extends AbstractFilter
}
/**
- * Set field
+ * Set field.
+ *
+ * @param string $field
*
- * @param string $field
- * @return \Elastica\Filter\Exists
+ * @return $this
*/
public function setField($field)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoBoundingBox.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoBoundingBox.php
index 1462e9af..f67febe3 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoBoundingBox.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoBoundingBox.php
@@ -1,21 +1,19 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
/**
- * Geo bounding box filter
+ * Geo bounding box filter.
*
- * @category Xodoa
- * @package Elastica
* @author Fabian Vogler <fabian@equivalence.ch>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-bounding-box-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-bounding-box-filter.html
*/
class GeoBoundingBox extends AbstractFilter
{
/**
- * Construct BoundingBoxFilter
+ * Construct BoundingBoxFilter.
*
* @param string $key Key
* @param array $coordinates Array with top left coordinate as first and bottom right coordinate as second element
@@ -26,12 +24,14 @@ class GeoBoundingBox extends AbstractFilter
}
/**
- * Add coordinates
+ * Add coordinates.
+ *
+ * @param string $key Key
+ * @param array $coordinates Array with top left coordinate as first and bottom right coordinate as second element
+ *
+ * @throws \Elastica\Exception\InvalidException If $coordinates doesn't have two elements
*
- * @param string $key Key
- * @param array $coordinates Array with top left coordinate as first and bottom right coordinate as second element
- * @throws \Elastica\Exception\InvalidException If $coordinates doesn't have two elements
- * @return \Elastica\Filter\GeoBoundingBox Current object
+ * @return $this
*/
public function addCoordinates($key, array $coordinates)
{
@@ -41,7 +41,7 @@ class GeoBoundingBox extends AbstractFilter
$this->setParam($key, array(
'top_left' => $coordinates[0],
- 'bottom_right' => $coordinates[1]
+ 'bottom_right' => $coordinates[1],
));
return $this;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistance.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistance.php
index 8e875365..f4cb51d9 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistance.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistance.php
@@ -1,30 +1,30 @@
<?php
-
namespace Elastica\Filter;
/**
- * Geo distance filter
+ * Geo distance filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-distance-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-filter.html
*/
class GeoDistance extends AbstractGeoDistance
{
const DISTANCE_TYPE_ARC = 'arc';
const DISTANCE_TYPE_PLANE = 'plane';
+ const DISTANCE_TYPE_SLOPPY_ARC = 'sloppy_arc';
const OPTIMIZE_BBOX_MEMORY = 'memory';
const OPTIMIZE_BBOX_INDEXED = 'indexed';
const OPTIMIZE_BBOX_NONE = 'none';
/**
- * Create GeoDistance object
+ * Create GeoDistance object.
+ *
+ * @param string $key Key
+ * @param array|string $location Location as array or geohash: array('lat' => 48.86, 'lon' => 2.35) OR 'drm3btev3e86'
+ * @param string $distance Distance
*
- * @param string $key Key
- * @param array|string $location Location as array or geohash: array('lat' => 48.86, 'lon' => 2.35) OR 'drm3btev3e86'
- * @param string $distance Distance
* @throws \Elastica\Exception\InvalidException
*/
public function __construct($key, $location, $distance)
@@ -35,8 +35,9 @@ class GeoDistance extends AbstractGeoDistance
}
/**
- * @param string $distance
- * @return \Elastica\Filter\GeoDistance current filter
+ * @param string $distance
+ *
+ * @return $this
*/
public function setDistance($distance)
{
@@ -46,10 +47,11 @@ class GeoDistance extends AbstractGeoDistance
}
/**
- * See DISTANCE_TYPE_* constants
+ * See DISTANCE_TYPE_* constants.
+ *
+ * @param string $distanceType
*
- * @param string $distanceType
- * @return \Elastica\Filter\GeoDistance current filter
+ * @return $this
*/
public function setDistanceType($distanceType)
{
@@ -59,10 +61,11 @@ class GeoDistance extends AbstractGeoDistance
}
/**
- * See OPTIMIZE_BBOX_* constants
+ * See OPTIMIZE_BBOX_* constants.
+ *
+ * @param string $optimizeBbox
*
- * @param string $optimizeBbox
- * @return \Elastica\Filter\GeoDistance current filter
+ * @return $this
*/
public function setOptimizeBbox($optimizeBbox)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistanceRange.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistanceRange.php
index 230e5ebf..f5cbbeb7 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistanceRange.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoDistanceRange.php
@@ -1,16 +1,14 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
/**
- * Geo distance filter
+ * Geo distance filter.
*
- * @category Xodoa
- * @package Elastica
* @author munkie
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-distance-range-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-range-filter.html
*/
class GeoDistanceRange extends AbstractGeoDistance
{
@@ -33,6 +31,7 @@ class GeoDistanceRange extends AbstractGeoDistance
* @param string $key
* @param array|string $location
* @param array $ranges
+ *
* @internal param string $distance
*/
public function __construct($key, $location, array $ranges = array())
@@ -45,8 +44,9 @@ class GeoDistanceRange extends AbstractGeoDistance
}
/**
- * @param array $ranges
- * @return \Elastica\Filter\GeoDistanceRange
+ * @param array $ranges
+ *
+ * @return $this
*/
public function setRanges(array $ranges)
{
@@ -60,10 +60,12 @@ class GeoDistanceRange extends AbstractGeoDistance
}
/**
- * @param string $key
- * @param mixed $value
- * @return \Elastica\Filter\GeoDistanceRange
+ * @param string $key
+ * @param mixed $value
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function setRange($key, $value)
{
@@ -80,7 +82,7 @@ class GeoDistanceRange extends AbstractGeoDistance
$value = (boolean) $value;
break;
default:
- throw new InvalidException('Invalid range parameter given: ' . $key);
+ throw new InvalidException('Invalid range parameter given: '.$key);
}
$this->_ranges[$key] = $value;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoPolygon.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoPolygon.php
index fa12c035..86ca2b80 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoPolygon.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoPolygon.php
@@ -1,35 +1,31 @@
<?php
-
namespace Elastica\Filter;
-use Elastica\Filter\AbstractFilter;
-
/**
- * Geo polygon filter
+ * Geo polygon filter.
*
- * @category Xodoa
- * @package Elastica
* @author Michael Maclean <mgdm@php.net>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-polygon-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-polygon-filter.html
*/
class GeoPolygon extends AbstractFilter
{
/**
- * Key
+ * Key.
*
* @var string Key
*/
protected $_key = '';
/**
- * Points making up polygon
+ * Points making up polygon.
*
* @var array Points making up polygon
*/
protected $_points = array();
/**
- * Construct polygon filter
+ * Construct polygon filter.
*
* @param string $key Key
* @param array $points Points making up polygon
@@ -41,9 +37,10 @@ class GeoPolygon extends AbstractFilter
}
/**
- * Converts filter to array
+ * Converts filter to array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array
*/
public function toArray()
@@ -51,9 +48,9 @@ class GeoPolygon extends AbstractFilter
return array(
'geo_polygon' => array(
$this->_key => array(
- 'points' => $this->_points
+ 'points' => $this->_points,
),
- )
+ ),
);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapePreIndexed.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapePreIndexed.php
index 7e89f8a8..d07cffff 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapePreIndexed.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapePreIndexed.php
@@ -1,49 +1,47 @@
<?php
-
namespace Elastica\Filter;
/**
- * geo_shape filter for pre-indexed shapes
+ * geo_shape filter for pre-indexed shapes.
*
* Filter pre-indexed shape definitions
*
- * @category Xodoa
- * @package Elastica
* @author Bennie Krijger <benniekrijger@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-shape-filter/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html
*/
class GeoShapePreIndexed extends AbstractGeoShape
{
/**
- * elasticsearch id of the pre-indexed shape
+ * elasticsearch id of the pre-indexed shape.
*
* @var string
*/
protected $_indexedId;
/**
- * elasticsearch type of the pre-indexed shape
+ * elasticsearch type of the pre-indexed shape.
*
* @var string
*/
protected $_indexedType;
/**
- * elasticsearch index of the pre-indexed shape
+ * elasticsearch index of the pre-indexed shape.
*
* @var string
*/
protected $_indexedIndex;
/**
- * elasticsearch path/field name of the pre-indexed shape
+ * elasticsearch path/field name of the pre-indexed shape.
*
* @var string
*/
protected $_indexedPath;
/**
- * Construct geo_shape filter with a pre-indexed shape
+ * Construct geo_shape filter with a pre-indexed shape.
*
* @param string $path The path/field of the shape searched
* @param string $indexedId Id of the pre-indexed shape
@@ -61,9 +59,10 @@ class GeoShapePreIndexed extends AbstractGeoShape
}
/**
- * Converts filter to array
+ * Converts filter to array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array
*/
public function toArray()
@@ -75,11 +74,11 @@ class GeoShapePreIndexed extends AbstractGeoShape
'id' => $this->_indexedId,
'type' => $this->_indexedType,
'index' => $this->_indexedIndex,
- 'path' => $this->_indexedPath
+ 'path' => $this->_indexedPath,
),
- 'relation' => $this->_relation
- )
- )
+ 'relation' => $this->_relation,
+ ),
+ ),
);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapeProvided.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapeProvided.php
index 5a88c05f..0f25beeb 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapeProvided.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeoShapeProvided.php
@@ -1,42 +1,40 @@
<?php
-
namespace Elastica\Filter;
/**
- * geo_shape filter or provided shapes
+ * geo_shape filter or provided shapes.
*
* Filter provided shape definitions
*
- * @category Xodoa
- * @package Elastica
* @author BennieKrijger <benniekrijger@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-shape-filter/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html
*/
class GeoShapeProvided extends AbstractGeoShape
{
- const TYPE_ENVELOPE = 'envelope';
- const TYPE_MULTIPOINT = 'multipoint';
- const TYPE_POINT = 'point';
- const TYPE_MULTIPOLYGON = 'multipolygon';
- const TYPE_LINESTRING = 'linestring';
- const TYPE_POLYGON = 'polygon';
+ const TYPE_ENVELOPE = 'envelope';
+ const TYPE_MULTIPOINT = 'multipoint';
+ const TYPE_POINT = 'point';
+ const TYPE_MULTIPOLYGON = 'multipolygon';
+ const TYPE_LINESTRING = 'linestring';
+ const TYPE_POLYGON = 'polygon';
/**
- * Type of the geo_shape
+ * Type of the geo_shape.
*
* @var string
*/
protected $_shapeType;
/**
- * Coordinates making up geo_shape
+ * Coordinates making up geo_shape.
*
* @var array Coordinates making up geo_shape
*/
protected $_coordinates;
/**
- * Construct geo_shape filter
+ * Construct geo_shape filter.
*
* @param string $path The path/field of the shape searched
* @param array $coordinates Points making up the shape
@@ -52,9 +50,10 @@ class GeoShapeProvided extends AbstractGeoShape
}
/**
- * Converts filter to array
+ * Converts filter to array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array
*/
public function toArray()
@@ -64,11 +63,11 @@ class GeoShapeProvided extends AbstractGeoShape
$this->_path => array(
'shape' => array(
'type' => $this->_shapeType,
- 'coordinates' => $this->_coordinates
+ 'coordinates' => $this->_coordinates,
),
- 'relation' => $this->_relation
+ 'relation' => $this->_relation,
),
- )
+ ),
);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/GeohashCell.php b/vendor/ruflin/elastica/lib/Elastica/Filter/GeohashCell.php
index d14b25fe..dd147152 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/GeohashCell.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/GeohashCell.php
@@ -1,20 +1,18 @@
<?php
-
namespace Elastica\Filter;
-
/**
- * Class GeohashCell
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/geohash-cell-filter/
+ * Class GeohashCell.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geohash-cell-filter.html
*/
class GeohashCell extends AbstractGeoDistance
{
/**
- * @param string $key The field on which to filter
- * @param array|string $location Location as coordinates array or geohash string ['lat' => 40.3, 'lon' => 45.2]
- * @param $precision Integer length of geohash prefix or distance (3, or "50m")
- * @param bool $neighbors If true, filters cells next to the given cell.
+ * @param string $key The field on which to filter
+ * @param array|string $location Location as coordinates array or geohash string ['lat' => 40.3, 'lon' => 45.2]
+ * @param string|int $precision Integer length of geohash prefix or distance (3, or "50m")
+ * @param bool $neighbors If true, filters cells next to the given cell.
*/
public function __construct($key, $location, $precision = -1, $neighbors = false)
{
@@ -24,9 +22,11 @@ class GeohashCell extends AbstractGeoDistance
}
/**
- * Set the precision for this filter
+ * Set the precision for this filter.
+ *
* @param string|int $precision Integer length of geohash prefix or distance (3, or "50m")
- * @return \Elastica\Filter\GeohashCell
+ *
+ * @return $this
*/
public function setPrecision($precision)
{
@@ -34,12 +34,14 @@ class GeohashCell extends AbstractGeoDistance
}
/**
- * Set the neighbors option for this filter
+ * Set the neighbors option for this filter.
+ *
* @param bool $neighbors If true, filters cells next to the given cell.
- * @return \Elastica\Filter\GeohashCell
+ *
+ * @return $this
*/
public function setNeighbors($neighbors)
{
- return $this->setParam('neighbors', (bool)$neighbors);
+ return $this->setParam('neighbors', (bool) $neighbors);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/HasChild.php b/vendor/ruflin/elastica/lib/Elastica/Filter/HasChild.php
index e8c6ab96..2c4cc0d6 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/HasChild.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/HasChild.php
@@ -1,22 +1,20 @@
<?php
-
namespace Elastica\Filter;
/**
- * Returns parent documents having child docs matching the query
+ * Returns parent documents having child docs matching the query.
*
- * @category Xodoa
- * @package Elastica
* @author Fabian Vogler <fabian@equivalence.ch>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/has-child-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-child-filter.html
*/
class HasChild extends AbstractFilter
{
/**
- * Construct HasChild filter
+ * Construct HasChild filter.
*
* @param string|\Elastica\Query|\Elastica\Filter\AbstractFilter $query Query string or a Elastica\Query object or a filter
- * @param string $type Parent document type
+ * @param string|\Elastica\Type $type Child document type
*/
public function __construct($query, $type = null)
{
@@ -29,10 +27,11 @@ class HasChild extends AbstractFilter
}
/**
- * Sets query object
+ * Sets query object.
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Filter\HasChild Current object
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -43,36 +42,54 @@ class HasChild extends AbstractFilter
}
/**
- * Sets the filter object
+ * Sets the filter object.
*
* @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Filter\HasChild Current object
+ *
+ * @return $this
*/
public function setFilter($filter)
{
- $data = $filter->toArray();
- return $this->setParam('filter', $data);
+ return $this->setParam('filter', $filter->toArray());
}
/**
- * Set type of the parent document
+ * Set type of the child document.
*
- * @param string $type Parent document type
- * @return \Elastica\Filter\HasChild Current object
+ * @param string|\Elastica\Type $type Child document type
+ *
+ * @return $this
*/
public function setType($type)
{
- return $this->setParam('type', $type);
+ if ($type instanceof \Elastica\Type) {
+ $type = $type->getName();
+ }
+
+ return $this->setParam('type', (string) $type);
}
/**
- * Sets the scope
+ * Set minimum number of children are required to match for the parent doc to be considered a match.
+ *
+ * @param int $count
+ *
+ * @return $this
+ */
+ public function setMinimumChildrenCount($count)
+ {
+ return $this->setParam('min_children', (int) $count);
+ }
+
+ /**
+ * Set maximum number of children are required to match for the parent doc to be considered a match.
+ *
+ * @param int $count
*
- * @param string $scope Scope
- * @return \Elastica\Filter\HasChild Current object
+ * @return $this
*/
- public function setScope($scope)
+ public function setMaximumChildrenCount($count)
{
- return $this->setParam('_scope', $scope);
+ return $this->setParam('max_children', (int) $count);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/HasParent.php b/vendor/ruflin/elastica/lib/Elastica/Filter/HasParent.php
index de49e470..73a2dc5a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/HasParent.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/HasParent.php
@@ -1,21 +1,18 @@
<?php
-
namespace Elastica\Filter;
/**
- * Returns child documents having parent docs matching the query
+ * Returns child documents having parent docs matching the query.
*
- * @category Xodoa
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/has-parent-filter.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-parent-filter.html
*/
class HasParent extends AbstractFilter
{
/**
- * Construct HasParent filter
+ * Construct HasParent filter.
*
* @param string|\Elastica\Query|\Elastica\Filter\AbstractFilter $query Query string or a Query object or a filter
- * @param string $type Parent document type
+ * @param string|\Elastica\Type $type Parent document type
*/
public function __construct($query, $type)
{
@@ -28,10 +25,11 @@ class HasParent extends AbstractFilter
}
/**
- * Sets query object
+ * Sets query object.
+ *
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Filter\HasParent Current object
+ * @return $this
*/
public function setQuery($query)
{
@@ -42,36 +40,30 @@ class HasParent extends AbstractFilter
}
/**
- * Sets query object
+ * Sets filter object.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter
*
- * @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Filter\HasParent Current object
+ * @return $this
*/
public function setFilter($filter)
{
- $data = $filter->toArray();
- return $this->setParam('filter', $data);
+ return $this->setParam('filter', $filter->toArray());
}
/**
- * Set type of the parent document
+ * Set type of the parent document.
*
- * @param string $type Parent document type
- * @return \Elastica\Filter\HasParent Current object
+ * @param string|\Elastica\Type $type Parent document type
+ *
+ * @return $this
*/
public function setType($type)
{
- return $this->setParam('type', $type);
- }
+ if ($type instanceof \Elastica\Type) {
+ $type = $type->getName();
+ }
- /**
- * Sets the scope
- *
- * @param string $scope Scope
- * @return \Elastica\Filter\HasParent Current object
- */
- public function setScope($scope)
- {
- return $this->setParam('_scope', $scope);
+ return $this->setParam('type', (string) $type);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Ids.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Ids.php
index fd1d9770..bfb8cc48 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Ids.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Ids.php
@@ -1,24 +1,22 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Type as ElasticaType;
/**
- * Ids Filter
+ * Ids Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Lee Parker, Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/ids-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-filter.html
*/
class Ids extends AbstractFilter
{
/**
- * Creates filter object
+ * Creates filter object.
*
* @param string|\Elastica\Type $type Type to filter on
- * @param array $ids List of ids
+ * @param array $ids List of ids
*/
public function __construct($type = null, array $ids = array())
{
@@ -27,10 +25,11 @@ class Ids extends AbstractFilter
}
/**
- * Adds one more filter to the and filter
+ * Adds one more filter to the and filter.
+ *
+ * @param string $id Adds id to filter
*
- * @param string $id Adds id to filter
- * @return \Elastica\Filter\Ids Current object
+ * @return $this
*/
public function addId($id)
{
@@ -38,10 +37,11 @@ class Ids extends AbstractFilter
}
/**
- * Adds one more type to query
+ * Adds one more type to query.
*
- * @param string|\Elastica\Type $type Type name or object
- * @return \Elastica\Filter\Ids Current object
+ * @param string|\Elastica\Type $type Type name or object
+ *
+ * @return $this
*/
public function addType($type)
{
@@ -57,10 +57,11 @@ class Ids extends AbstractFilter
}
/**
- * Set type
+ * Set type.
+ *
+ * @param string|\Elastica\Type $type Type name or object
*
- * @param string|\Elastica\Type $type Type name or object
- * @return \Elastica\Filter\Ids Current object
+ * @return $this
*/
public function setType($type)
{
@@ -76,10 +77,11 @@ class Ids extends AbstractFilter
}
/**
- * Sets the ids to filter
+ * Sets the ids to filter.
+ *
+ * @param array|string $ids List of ids
*
- * @param array|string $ids List of ids
- * @return \Elastica\Filter\Ids Current object
+ * @return $this
*/
public function setIds($ids)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Indices.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Indices.php
index 66ca5965..ffaf5975 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Indices.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Indices.php
@@ -1,18 +1,18 @@
<?php
-
namespace Elastica\Filter;
+use Elastica\Index as ElasticaIndex;
/**
- * Class Indices
- * @package Elastica\Filter
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/query-dsl-indices-filter.html
+ * Class Indices.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-indices-filter.html
*/
class Indices extends AbstractFilter
{
/**
- * @param AbstractFilter $filter filter which will be applied to docs in the specified indices
- * @param string[] $indices
+ * @param AbstractFilter $filter filter which will be applied to docs in the specified indices
+ * @param mixed[] $indices
*/
public function __construct(AbstractFilter $filter, array $indices)
{
@@ -20,19 +20,44 @@ class Indices extends AbstractFilter
}
/**
- * Set the names of the indices on which this filter should be applied
- * @param string[] $indices
- * @return Indices
+ * Set the indices on which this filter should be applied.
+ *
+ * @param mixed[] $indices
+ *
+ * @return $this
*/
public function setIndices(array $indices)
{
- return $this->setParam('indices', $indices);
+ $this->setParam('indices', array());
+ foreach ($indices as $index) {
+ $this->addIndex($index);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Adds one more index on which this filter should be applied.
+ *
+ * @param string|\Elastica\Index $index
+ *
+ * @return $this
+ */
+ public function addIndex($index)
+ {
+ if ($index instanceof ElasticaIndex) {
+ $index = $index->getName();
+ }
+
+ return $this->addParam('indices', (string) $index);
}
/**
- * Set the filter to be applied to docs in the specified indices
+ * Set the filter to be applied to docs in the specified indices.
+ *
* @param AbstractFilter $filter
- * @return Indices
+ *
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
@@ -40,12 +65,14 @@ class Indices extends AbstractFilter
}
/**
- * Set the filter to be applied to docs in indices which do not match those specified in the "indices" parameter
+ * Set the filter to be applied to docs in indices which do not match those specified in the "indices" parameter.
+ *
* @param AbstractFilter $filter
- * @return Indices
+ *
+ * @return $this
*/
public function setNoMatchFilter(AbstractFilter $filter)
{
return $this->setParam('no_match_filter', $filter->toArray());
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Limit.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Limit.php
index e02853ae..bf3f8e13 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Limit.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Limit.php
@@ -1,22 +1,19 @@
<?php
-
namespace Elastica\Filter;
/**
- * Limit Filter
+ * Limit Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/limit-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-limit-filter.html
*/
class Limit extends AbstractFilter
{
/**
- * Construct limit filter
+ * Construct limit filter.
*
- * @param int $limit Limit
- * @return \Elastica\Filter\Limit
+ * @param int $limit Limit
*/
public function __construct($limit)
{
@@ -24,10 +21,11 @@ class Limit extends AbstractFilter
}
/**
- * Set the limit
+ * Set the limit.
+ *
+ * @param int $limit Limit
*
- * @param int $limit Limit
- * @return \Elastica\Filter\Limit
+ * @return $this
*/
public function setLimit($limit)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/MatchAll.php b/vendor/ruflin/elastica/lib/Elastica/Filter/MatchAll.php
index a69b65a2..607c5fd1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/MatchAll.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/MatchAll.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Filter;
/**
- * Match all filter
+ * Match all filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/match-all-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-all-filter.html
*/
class MatchAll extends AbstractFilter
{
/**
- * Creates match all filter
+ * Creates match all filter.
*/
public function __construct()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Missing.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Missing.php
index df8466a8..9b157b2c 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Missing.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Missing.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Filter;
/**
- * Missing Filter
+ * Missing Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Maciej Wiercinski <maciej@wiercinski.net>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/missing-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-missing-filter.html
*/
class Missing extends AbstractFilter
{
/**
- * Construct missing filter
+ * Construct missing filter.
*
* @param string $field OPTIONAL
*/
@@ -25,13 +23,38 @@ class Missing extends AbstractFilter
}
/**
- * Set field
+ * Set field.
+ *
+ * @param string $field
*
- * @param string $field
- * @return \Elastica\Filter\Missing
+ * @return $this
*/
public function setField($field)
{
return $this->setParam('field', (string) $field);
}
+
+ /**
+ * Set "existence" parameter.
+ *
+ * @param bool $existence
+ *
+ * @return $this
+ */
+ public function setExistence($existence)
+ {
+ return $this->setParam('existence', (bool) $existence);
+ }
+
+ /**
+ * Set "null_value" parameter.
+ *
+ * @param bool $nullValue
+ *
+ * @return $this
+ */
+ public function setNullValue($nullValue)
+ {
+ return $this->setParam('null_value', (bool) $nullValue);
+ }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Nested.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Nested.php
index 16293519..ad21bc7e 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Nested.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Nested.php
@@ -1,24 +1,23 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Query\AbstractQuery;
/**
- * Nested filter
+ * Nested filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/nested-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-filter.html
*/
class Nested extends AbstractFilter
{
/**
- * Adds field to mlt filter
+ * Adds field to mlt filter.
+ *
+ * @param string $path Nested object path
*
- * @param string $path Nested object path
- * @return \Elastica\Filter\Nested
+ * @return $this
*/
public function setPath($path)
{
@@ -26,10 +25,11 @@ class Nested extends AbstractFilter
}
/**
- * Sets nested query
+ * Sets nested query.
*
- * @param \Elastica\Query\AbstractQuery $query
- * @return \Elastica\Filter\Nested
+ * @param \Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery(AbstractQuery $query)
{
@@ -37,10 +37,11 @@ class Nested extends AbstractFilter
}
/**
- * Sets nested filter
+ * Sets nested filter.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter
*
- * @param \Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Filter\Nested
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
@@ -48,13 +49,14 @@ class Nested extends AbstractFilter
}
/**
- * Set score mode
+ * Set join option.
+ *
+ * @param bool $join
*
- * @param string $scoreMode Options: avg, total, max and none.
- * @return \Elastica\Filter\Nested
+ * @return $this
*/
- public function setScoreMode($scoreMode)
+ public function setJoin($join)
{
- return $this->setParam('score_mode', $scoreMode);
+ return $this->setParam('join', (bool) $join);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/NumericRange.php b/vendor/ruflin/elastica/lib/Elastica/Filter/NumericRange.php
index 5a6e2551..08342616 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/NumericRange.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/NumericRange.php
@@ -1,14 +1,12 @@
<?php
-
namespace Elastica\Filter;
/**
- * Numeric Range Filter
+ * Numeric Range Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/numeric-range-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-filter.html
*/
class NumericRange extends Range
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Prefix.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Prefix.php
index 2caf13cb..e845fd73 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Prefix.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Prefix.php
@@ -1,14 +1,12 @@
<?php
-
namespace Elastica\Filter;
/**
- * Prefix filter
+ * Prefix filter.
*
- * @category Xodoa
- * @package Elastica
* @author Jasper van Wanrooy <jasper@vanwanrooy.net>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/prefix-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-filter.html
*/
class Prefix extends AbstractFilter
{
@@ -27,7 +25,7 @@ class Prefix extends AbstractFilter
protected $_prefix = '';
/**
- * Creates prefix filter
+ * Creates prefix filter.
*
* @param string $field Field name
* @param string $prefix Prefix string
@@ -41,8 +39,9 @@ class Prefix extends AbstractFilter
/**
* Sets the name of the prefix field.
*
- * @param string $field Field name
- * @return \Elastica\Filter\Prefix
+ * @param string $field Field name
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -54,8 +53,9 @@ class Prefix extends AbstractFilter
/**
* Sets the prefix string.
*
- * @param string $prefix Prefix string
- * @return \Elastica\Filter\Prefix
+ * @param string $prefix Prefix string
+ *
+ * @return $this
*/
public function setPrefix($prefix)
{
@@ -65,9 +65,10 @@ class Prefix extends AbstractFilter
}
/**
- * Converts object to an array
+ * Converts object to an array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array data array
*/
public function toArray()
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Query.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Query.php
index 3f1ba2d2..acb6a124 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Query.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Query.php
@@ -1,28 +1,27 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
use Elastica\Query\AbstractQuery;
/**
- * Query filter
+ * Query filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/query-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-filter.html
*/
class Query extends AbstractFilter
{
/**
- * Query
+ * Query.
+ *
* @var array
*/
protected $_query;
/**
- * Construct query filter
+ * Construct query filter.
*
* @param array|\Elastica\Query\AbstractQuery $query
*/
@@ -34,15 +33,17 @@ class Query extends AbstractFilter
}
/**
- * Set query
+ * Set query.
+ *
+ * @param array|\Elastica\Query\AbstractQuery $query
+ *
+ * @throws \Elastica\Exception\InvalidException If parameter is invalid
*
- * @param array|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Filter\Query Query object
- * @throws \Elastica\Exception\InvalidException Invalid param
+ * @return $this
*/
public function setQuery($query)
{
- if (!$query instanceof AbstractQuery && ! is_array($query)) {
+ if (!$query instanceof AbstractQuery && !is_array($query)) {
throw new InvalidException('expected an array or instance of Elastica\Query\AbstractQuery');
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Range.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Range.php
index b142e674..1e7bf132 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Range.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Range.php
@@ -1,31 +1,29 @@
<?php
-
namespace Elastica\Filter;
/**
- * Range Filter
+ * Range Filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/range-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-filter.html
*/
class Range extends AbstractFilter
{
/**
- * Fields
+ * Fields.
*
* @var array Fields
*/
protected $_fields = array();
/**
- * Construct range filter
+ * Construct range filter.
*
- * @param string|bool $fieldName Field name
- * @param array $args Field arguments
+ * @param string $fieldName Field name
+ * @param array $args Field arguments
*/
- public function __construct($fieldName = false, array $args = array())
+ public function __construct($fieldName = '', array $args = array())
{
if ($fieldName) {
$this->addField($fieldName, $args);
@@ -33,11 +31,12 @@ class Range extends AbstractFilter
}
/**
- * Ads a field with arguments to the range query
+ * Ads a field with arguments to the range query.
+ *
+ * @param string $fieldName Field name
+ * @param array $args Field arguments
*
- * @param string $fieldName Field name
- * @param array $args Field arguments
- * @return \Elastica\Filter\Range
+ * @return $this
*/
public function addField($fieldName, array $args)
{
@@ -47,14 +46,27 @@ class Range extends AbstractFilter
}
/**
- * Converts object to array
+ * Set execution mode.
+ *
+ * @param string $execution Options: "index" or "fielddata"
+ *
+ * @return $this
+ */
+ public function setExecution($execution)
+ {
+ return $this->setParam('execution', (string) $execution);
+ }
+
+ /**
+ * Converts object to array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array Filter array
*/
public function toArray()
{
- $this->setParams($this->_fields);
+ $this->setParams(array_merge($this->getParams(), $this->_fields));
return parent::toArray();
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Regexp.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Regexp.php
index 33c47cfd..612dc434 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Regexp.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Regexp.php
@@ -1,14 +1,12 @@
<?php
-
namespace Elastica\Filter;
/**
- * Regexp filter
+ * Regexp filter.
*
- * @category Xodoa
- * @package Elastica
* @author Timothy Lamb <trash80@gmail.com>
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-regexp-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-filter.html
*/
class Regexp extends AbstractFilter
{
@@ -27,23 +25,34 @@ class Regexp extends AbstractFilter
protected $_regexp = '';
/**
- * Create Regexp object
+ * Holds the regexp options.
+ *
+ * @var array
+ */
+ protected $_options = array();
+
+ /**
+ * Create Regexp object.
+ *
+ * @param string $field Field name
+ * @param string $regexp Regular expression
+ * @param array $options Regular expression options
*
- * @param string $field Field name
- * @param string $regexp Regular expression
* @throws \Elastica\Exception\InvalidException
*/
- public function __construct($field = '', $regexp = '')
+ public function __construct($field = '', $regexp = '', $options = array())
{
$this->setField($field);
$this->setRegexp($regexp);
+ $this->setOptions($options);
}
/**
* Sets the name of the regexp field.
*
- * @param string $field Field name
- * @return \Elastica\Filter\Regexp
+ * @param string $field Field name
+ *
+ * @return $this
*/
public function setField($field)
{
@@ -55,8 +64,9 @@ class Regexp extends AbstractFilter
/**
* Sets the regular expression query string.
*
- * @param string $regexp Regular expression
- * @return \Elastica\Filter\Regexp
+ * @param string $regexp Regular expression
+ *
+ * @return $this
*/
public function setRegexp($regexp)
{
@@ -66,14 +76,36 @@ class Regexp extends AbstractFilter
}
/**
- * Converts object to an array
+ * Sets the regular expression query options.
+ *
+ * @param array $options Regular expression options
+ *
+ * @return $this
+ */
+ public function setOptions($options)
+ {
+ $this->_options = $options;
+
+ return $this;
+ }
+
+ /**
+ * Converts object to an array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array data array
*/
public function toArray()
{
- $this->setParam($this->_field, $this->_regexp);
+ if (count($this->_options) > 0) {
+ $options = array('value' => $this->_regexp);
+ $options = array_merge($options, $this->_options);
+
+ $this->setParam($this->_field, $options);
+ } else {
+ $this->setParam($this->_field, $this->_regexp);
+ }
return parent::toArray();
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Script.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Script.php
index 9b34b1ec..2c8d34bf 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Script.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Script.php
@@ -1,29 +1,26 @@
<?php
-
namespace Elastica\Filter;
use Elastica;
-use Elastica\Query\AbstractQuery;
/**
- * Script filter
+ * Script filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/script-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-filter.html
*/
class Script extends AbstractFilter
{
/**
- * Query object
+ * Query object.
*
* @var array|\Elastica\Query\AbstractQuery
*/
protected $_query = null;
/**
- * Construct script filter
+ * Construct script filter.
*
* @param array|string|\Elastica\Script $script OPTIONAL Script
*/
@@ -35,10 +32,11 @@ class Script extends AbstractFilter
}
/**
- * Sets script object
+ * Sets script object.
+ *
+ * @param \Elastica\Script|string|array $script
*
- * @param \Elastica\Script|string|array $script
- * @return \Elastica\Filter\Script
+ * @return $this
*/
public function setScript($script)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Term.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Term.php
index b4773030..2a387318 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Term.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Term.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Filter;
/**
- * Term query
+ * Term query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/term-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-filter.html
*/
class Term extends AbstractFilter
{
/**
- * Construct term filter
+ * Construct term filter.
*
* @param array $term Term array
*/
@@ -23,10 +21,11 @@ class Term extends AbstractFilter
}
/**
- * Sets/overwrites key and term directly
+ * Sets/overwrites key and term directly.
*
- * @param array $term Key value pair
- * @return \Elastica\Filter\Term Filter object
+ * @param array $term Key value pair
+ *
+ * @return $this
*/
public function setRawTerm(array $term)
{
@@ -34,11 +33,12 @@ class Term extends AbstractFilter
}
/**
- * Adds a term to the term query
+ * Adds a term to the term query.
+ *
+ * @param string $key Key to query
+ * @param string|array $value Values(s) for the query. Boost can be set with array
*
- * @param string $key Key to query
- * @param string|array $value Values(s) for the query. Boost can be set with array
- * @return \Elastica\Filter\Term Filter object
+ * @return $this
*/
public function setTerm($key, $value)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Terms.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Terms.php
index 2f7c88e3..c099ab3d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Terms.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Terms.php
@@ -1,42 +1,40 @@
<?php
-
namespace Elastica\Filter;
use Elastica\Exception\InvalidException;
/**
- * Terms filter
+ * Terms filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/terms-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html
*/
class Terms extends AbstractFilter
{
/**
- * Terms
+ * Terms.
*
* @var array Terms
*/
protected $_terms = array();
/**
- * Params
+ * Params.
*
* @var array Params
*/
protected $_params = array();
/**
- * Terms key
+ * Terms key.
*
* @var string Terms key
*/
protected $_key = '';
/**
- * Creates terms filter
+ * Creates terms filter.
*
* @param string $key Terms key
* @param array $terms Terms values
@@ -47,11 +45,12 @@ class Terms extends AbstractFilter
}
/**
- * Sets key and terms for the filter
+ * Sets key and terms for the filter.
*
- * @param string $key Terms key
- * @param array $terms Terms for the query.
- * @return \Elastica\Filter\Terms
+ * @param string $key Terms key
+ * @param array $terms Terms for the query.
+ *
+ * @return $this
*/
public function setTerms($key, array $terms)
{
@@ -62,13 +61,15 @@ class Terms extends AbstractFilter
}
/**
- * Set the lookup parameters for this filter
- * @param string $key terms key
- * @param string|\Elastica\Type $type document type from which to fetch the terms values
- * @param string $id id of the document from which to fetch the terms values
- * @param string $path the field from which to fetch the values for the filter
+ * Set the lookup parameters for this filter.
+ *
+ * @param string $key terms key
+ * @param string|\Elastica\Type $type document type from which to fetch the terms values
+ * @param string $id id of the document from which to fetch the terms values
+ * @param string $path the field from which to fetch the values for the filter
* @param string|array|\Elastica\Index $options An array of options or the index from which to fetch the terms values. Defaults to the current index.
- * @return \Elastica\Filter\Terms Filter object
+ *
+ * @return $this
*/
public function setLookup($key, $type, $id, $path, $options = array())
{
@@ -79,32 +80,34 @@ class Terms extends AbstractFilter
$this->_terms = array(
'type' => $type,
'id' => $id,
- 'path' => $path
+ 'path' => $path,
);
-
+
$index = $options;
- if(is_array($options)) {
- if(isset($options['index'])) {
+ if (is_array($options)) {
+ if (isset($options['index'])) {
$index = $options['index'];
unset($options['index']);
}
$this->_terms = array_merge($options, $this->_terms);
}
-
+
if (!is_null($index)) {
if ($index instanceof \Elastica\Index) {
$index = $index->getName();
}
$this->_terms['index'] = $index;
}
+
return $this;
}
/**
- * Adds an additional term to the query
+ * Adds an additional term to the query.
+ *
+ * @param string $term Filter term
*
- * @param string $term Filter term
- * @return \Elastica\Filter\Terms Filter object
+ * @return $this
*/
public function addTerm($term)
{
@@ -114,11 +117,13 @@ class Terms extends AbstractFilter
}
/**
- * Converts object to an array
+ * Converts object to an array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @throws \Elastica\Exception\InvalidException
- * @return array data array
+ *
+ * @return array
*/
public function toArray()
{
@@ -129,4 +134,16 @@ class Terms extends AbstractFilter
return array('terms' => $this->_params);
}
+
+ /**
+ * Set execution mode.
+ *
+ * @param string $execution Options: "bool", "and", "or", "plain" or "fielddata"
+ *
+ * @return $this
+ */
+ public function setExecution($execution)
+ {
+ return $this->setParam('execution', (string) $execution);
+ }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Filter/Type.php b/vendor/ruflin/elastica/lib/Elastica/Filter/Type.php
index 8fb58c7d..f9c17813 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Filter/Type.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Filter/Type.php
@@ -1,42 +1,40 @@
<?php
-
namespace Elastica\Filter;
/**
- * Type Filter
+ * Type Filter.
*
- * @category Xodoa
- * @package Elastica
* @author James Wilson <jwilson556@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/type-filter.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-type-filter.html
*/
class Type extends AbstractFilter
{
/**
- * Type name
+ * Type name.
*
* @var string
*/
protected $_type = null;
/**
- * Construct Type Filter
+ * Construct Type Filter.
*
- * @param string $typeName Type name
- * @return \Elastica\Filter\Type
+ * @param string $type Type name
*/
- public function __construct($typeName = null)
+ public function __construct($type = null)
{
- if ($typeName) {
- $this->setType($typeName);
+ if ($type) {
+ $this->setType($type);
}
}
/**
- * Ads a field with arguments to the range query
+ * Ads a field with arguments to the range query.
*
- * @param string $typeName Type name
- * @return \Elastica\Filter\Type current object
+ * @param string $typeName Type name
+ *
+ * @return $this
*/
public function setType($typeName)
{
@@ -46,15 +44,16 @@ class Type extends AbstractFilter
}
/**
- * Convert object to array
+ * Convert object to array.
*
* @see \Elastica\Filter\AbstractFilter::toArray()
+ *
* @return array Filter array
*/
public function toArray()
{
return array(
- 'type' => array('value' => $this->_type)
+ 'type' => array('value' => $this->_type),
);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Index.php b/vendor/ruflin/elastica/lib/Elastica/Index.php
index 5e1e7138..3b8d431b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Index.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Index.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica;
use Elastica\Exception\InvalidException;
@@ -9,53 +8,53 @@ use Elastica\Index\Stats as IndexStats;
use Elastica\Index\Status as IndexStatus;
/**
- * Elastica index object
+ * Elastica index object.
*
* Handles reads, deletes and configurations of an index
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Index implements SearchableInterface
{
/**
- * Index name
+ * Index name.
*
* @var string Index name
*/
protected $_name = '';
/**
- * Client object
+ * Client object.
*
* @var \Elastica\Client Client object
*/
protected $_client = null;
/**
- * Creates a new index object
+ * Creates a new index object.
*
* All the communication to and from an index goes of this object
*
- * @param \Elastica\Client $client Client object
- * @param string $name Index name
+ * @param \Elastica\Client $client Client object
+ * @param string $name Index name
+ *
* @throws \Elastica\Exception\InvalidException
*/
public function __construct(Client $client, $name)
{
$this->_client = $client;
- if (!is_string($name)) {
- throw new InvalidException('Index name should be of type string');
+ if (!is_scalar($name)) {
+ throw new InvalidException('Index name should be a scalar type');
}
- $this->_name = $name;
+ $this->_name = (string) $name;
}
/**
- * Returns a type object for the current index with the given name
+ * Returns a type object for the current index with the given name.
+ *
+ * @param string $type Type name
*
- * @param string $type Type name
* @return \Elastica\Type Type object
*/
public function getType($type)
@@ -64,7 +63,7 @@ class Index implements SearchableInterface
}
/**
- * Returns the current status of the index
+ * Returns the current status of the index.
*
* @return \Elastica\Index\Status Index status
*/
@@ -74,7 +73,7 @@ class Index implements SearchableInterface
}
/**
- * Return Index Stats
+ * Return Index Stats.
*
* @return \Elastica\Index\Stats
*/
@@ -94,10 +93,10 @@ class Index implements SearchableInterface
$response = $this->request($path, Request::GET);
$data = $response->getData();
-
+
// Get first entry as if index is an Alias, the name of the mapping is the real name and not alias name
$mapping = array_shift($data);
-
+
if (isset($mapping['mappings'])) {
return $mapping['mappings'];
}
@@ -106,7 +105,7 @@ class Index implements SearchableInterface
}
/**
- * Returns the index settings object
+ * Returns the index settings object.
*
* @return \Elastica\Index\Settings Settings object
*/
@@ -116,11 +115,13 @@ class Index implements SearchableInterface
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function updateDocuments(array $docs)
{
@@ -132,11 +133,13 @@ class Index implements SearchableInterface
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function addDocuments(array $docs)
{
@@ -148,7 +151,30 @@ class Index implements SearchableInterface
}
/**
- * Deletes the index
+ * Deletes entries in the db based on a query.
+ *
+ * @param \Elastica\Query|string $query Query object
+ * @param array $options Optional params
+ *
+ * @return \Elastica\Response
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
+ */
+ public function deleteByQuery($query, array $options = array())
+ {
+ if (is_string($query)) {
+ // query_string queries are not supported for delete by query operations
+ $options['q'] = $query;
+
+ return $this->request('_query', Request::DELETE, array(), $options);
+ }
+ $query = Query::create($query);
+
+ return $this->request('_query', Request::DELETE, array('query' => $query->getQuery()), $options);
+ }
+
+ /**
+ * Deletes the index.
*
* @return \Elastica\Response Response object
*/
@@ -160,11 +186,13 @@ class Index implements SearchableInterface
}
/**
- * Uses _bulk to delete documents from the server
+ * Uses _bulk to delete documents from the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function deleteDocuments(array $docs)
{
@@ -176,24 +204,27 @@ class Index implements SearchableInterface
}
/**
- * Optimizes search index
+ * Optimizes search index.
*
* Detailed arguments can be found here in the link
*
- * @param array $args OPTIONAL Additional arguments
+ * @param array $args OPTIONAL Additional arguments
+ *
* @return array Server response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-optimize.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-optimize.html
*/
public function optimize($args = array())
{
- $this->request('_optimize', Request::POST, array(), $args);
+ return $this->request('_optimize', Request::POST, array(), $args);
}
/**
- * Refreshes the index
+ * Refreshes the index.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-refresh.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html
*/
public function refresh()
{
@@ -201,16 +232,19 @@ class Index implements SearchableInterface
}
/**
- * Creates a new index with the given arguments
+ * Creates a new index with the given arguments.
*
- * @param array $args OPTIONAL Arguments to use
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html
+ *
+ * @param array $args OPTIONAL Arguments to use
* @param bool|array $options OPTIONAL
* bool=> Deletes index first if already exists (default = false).
* array => Associative array of options (option=>value)
+ *
* @throws \Elastica\Exception\InvalidException
* @throws \Elastica\Exception\ResponseException
- * @return array Server response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html
+ *
+ * @return array Server response
*/
public function create(array $args = array(), $options = null)
{
@@ -240,7 +274,7 @@ class Index implements SearchableInterface
$query = array('routing' => $value);
break;
default:
- throw new InvalidException('Invalid option ' . $key);
+ throw new InvalidException('Invalid option '.$key);
break;
}
}
@@ -251,7 +285,7 @@ class Index implements SearchableInterface
}
/**
- * Checks if the given index is already created
+ * Checks if the given index is already created.
*
* @return bool True if index exists
*/
@@ -260,12 +294,13 @@ class Index implements SearchableInterface
$response = $this->getClient()->request($this->getName(), Request::HEAD);
$info = $response->getTransferInfo();
- return (bool)($info['http_code'] == 200);
+ return (bool) ($info['http_code'] == 200);
}
/**
- * @param string $query
- * @param int|array $options
+ * @param string|array|\Elastica\Query $query
+ * @param int|array $options
+ *
* @return \Elastica\Search
*/
public function createSearch($query = '', $options = null)
@@ -278,11 +313,13 @@ class Index implements SearchableInterface
}
/**
- * Searches in this index
+ * Searches in this index.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
+ *
+ * @return \Elastica\ResultSet ResultSet with all results inside
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
- * @return \Elastica\ResultSet ResultSet with all results inside
* @see \Elastica\SearchableInterface::search
*/
public function search($query = '', $options = null)
@@ -293,10 +330,12 @@ class Index implements SearchableInterface
}
/**
- * Counts results of query
+ * Counts results of query.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return int number of documents matching the query
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return int number of documents matching the query
* @see \Elastica\SearchableInterface::count
*/
public function count($query = '')
@@ -307,21 +346,23 @@ class Index implements SearchableInterface
}
/**
- * Opens an index
+ * Opens an index.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html
*/
public function open()
{
- $this->request('_open', Request::POST);
+ return $this->request('_open', Request::POST);
}
/**
- * Closes the index
+ * Closes the index.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html
*/
public function close()
{
@@ -329,7 +370,7 @@ class Index implements SearchableInterface
}
/**
- * Returns the index name
+ * Returns the index name.
*
* @return string Index name
*/
@@ -339,7 +380,7 @@ class Index implements SearchableInterface
}
/**
- * Returns index client
+ * Returns index client.
*
* @return \Elastica\Client Index client object
*/
@@ -349,12 +390,14 @@ class Index implements SearchableInterface
}
/**
- * Adds an alias to the current index
+ * Adds an alias to the current index.
+ *
+ * @param string $name Alias name
+ * @param bool $replace OPTIONAL If set, an existing alias will be replaced
*
- * @param string $name Alias name
- * @param bool $replace OPTIONAL If set, an existing alias will be replaced
* @return \Elastica\Response Response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
*/
public function addAlias($name, $replace = false)
{
@@ -375,11 +418,13 @@ class Index implements SearchableInterface
}
/**
- * Removes an alias pointing to the current index
+ * Removes an alias pointing to the current index.
+ *
+ * @param string $name Alias name
*
- * @param string $name Alias name
* @return \Elastica\Response Response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
*/
public function removeAlias($name)
{
@@ -391,10 +436,11 @@ class Index implements SearchableInterface
}
/**
- * Clears the cache of an index
+ * Clears the cache of an index.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-clearcache.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clearcache.html
*/
public function clearCache()
{
@@ -404,24 +450,27 @@ class Index implements SearchableInterface
}
/**
- * Flushes the index to storage
+ * Flushes the index to storage.
*
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-flush.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-flush.html
*/
public function flush($refresh = false)
{
$path = '_flush';
+
return $this->request($path, Request::POST, array(), array('refresh' => $refresh));
}
/**
- * Can be used to change settings during runtime. One example is to use
- * if for bulk updating {@link http://www.elasticsearch.org/blog/2011/03/23/update-settings.html}
+ * Can be used to change settings during runtime. One example is to use it for bulk updating.
+ *
+ * @param array $data Data array
*
- * @param array $data Data array
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
*/
public function setSettings(array $data)
{
@@ -429,34 +478,38 @@ class Index implements SearchableInterface
}
/**
- * Makes calls to the elasticsearch server based on this index
+ * Makes calls to the elasticsearch server based on this index.
+ *
+ * @param string $path Path to call
+ * @param string $method Rest method to use (GET, POST, DELETE, PUT)
+ * @param array $data OPTIONAL Arguments as array
+ * @param array $query OPTIONAL Query params
*
- * @param string $path Path to call
- * @param string $method Rest method to use (GET, POST, DELETE, PUT)
- * @param array $data OPTIONAL Arguments as array
- * @param array $query OPTIONAL Query params
* @return \Elastica\Response Response object
*/
public function request($path, $method, $data = array(), array $query = array())
{
- $path = $this->getName() . '/' . $path;
+ $path = $this->getName().'/'.$path;
return $this->getClient()->request($path, $method, $data, $query);
}
/**
- * Analyzes a string
+ * Analyzes a string.
*
* Detailed arguments can be found here in the link
*
- * @param string $text String to be analyzed
- * @param array $args OPTIONAL Additional arguments
+ * @param string $text String to be analyzed
+ * @param array $args OPTIONAL Additional arguments
+ *
* @return array Server response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-analyze.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html
*/
public function analyze($text, $args = array())
{
$data = $this->request('_analyze', Request::POST, $text, $args)->getData();
+
return $data['tokens'];
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Index/Settings.php b/vendor/ruflin/elastica/lib/Elastica/Index/Settings.php
index 2f2b90c6..f97e360a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Index/Settings.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Index/Settings.php
@@ -1,41 +1,41 @@
<?php
-
namespace Elastica\Index;
+use Elastica\Exception\NotFoundException;
+use Elastica\Exception\ResponseException;
use Elastica\Index as BaseIndex;
use Elastica\Request;
/**
- * Elastica index settings object
+ * Elastica index settings object.
*
- * All settings listed in the update settings API (http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html)
- * can be changed on a running indices. To make changes like the merge policy (http://www.elasticsearch.org/guide/reference/index-modules/merge.html)
+ * All settings listed in the update settings API (http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html)
+ * can be changed on a running indices. To make changes like the merge policy (http://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-merge.html)
* the index has to be closed first and reopened after the call
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html
- * @link http://www.elasticsearch.org/guide/reference/index-modules/merge.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-merge.html
*/
class Settings
{
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Stats info
+ * Stats info.
*
* @var array Stats info
*/
protected $_data = array();
/**
- * Index
+ * Index.
*
* @var \Elastica\Index Index object
*/
@@ -44,7 +44,7 @@ class Settings
const DEFAULT_REFRESH_INTERVAL = '1s';
/**
- * Construct
+ * Construct.
*
* @param \Elastica\Index $index Index object
*/
@@ -54,53 +54,64 @@ class Settings
}
/**
- * Returns the current settings of the index
+ * Returns the current settings of the index.
*
* If param is set, only specified setting is return.
* 'index.' is added in front of $setting.
*
- * @param string $setting OPTIONAL Setting name to return
+ * @param string $setting OPTIONAL Setting name to return
+ *
* @return array|string|null Settings data
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
*/
public function get($setting = '')
{
$requestData = $this->request()->getData();
$data = reset($requestData);
+
+ if (empty($data['settings']) || empty($data['settings']['index'])) {
+ // should not append, the request should throw a ResponseException
+ throw new NotFoundException('Index '.$this->getIndex()->getName().' not found');
+ }
$settings = $data['settings']['index'];
- if (!empty($setting)) {
- if (isset($settings[$setting])) {
- return $settings[$setting];
- } else {
- if (strpos($setting, '.') !== false) {
- // translate old dot-notation settings to nested arrays
- $keys = explode('.', $setting);
- foreach ($keys as $key) {
- if (isset($settings[$key])) {
- $settings = $settings[$key];
- } else {
- return null;
- }
+ if (!$setting) {
+ // return all array
+ return $settings;
+ }
+
+ if (isset($settings[$setting])) {
+ return $settings[$setting];
+ } else {
+ if (strpos($setting, '.') !== false) {
+ // translate old dot-notation settings to nested arrays
+ $keys = explode('.', $setting);
+ foreach ($keys as $key) {
+ if (isset($settings[$key])) {
+ $settings = $settings[$key];
+ } else {
+ return;
}
- return $settings;
}
- return null;
+
+ return $settings;
}
- }
- return $settings;
+ return;
+ }
}
/**
- * Sets the number of replicas
+ * Sets the number of replicas.
+ *
+ * @param int $replicas Number of replicas
*
- * @param int $replicas Number of replicas
* @return \Elastica\Response Response object
*/
public function setNumberOfReplicas($replicas)
{
- $replicas = (int)$replicas;
+ $replicas = (int) $replicas;
$data = array('number_of_replicas' => $replicas);
@@ -108,14 +119,25 @@ class Settings
}
/**
- * Sets the index to read only
+ * Sets the index to read only.
+ *
+ * @param bool $readOnly (default = true)
*
- * @param bool $readOnly (default = true)
* @return \Elastica\Response
*/
public function setReadOnly($readOnly = true)
{
- return $this->set(array('blocks.read_only' => $readOnly));
+ return $this->set(array('blocks.write' => $readOnly));
+ }
+
+ /**
+ * getReadOnly.
+ *
+ * @return bool
+ */
+ public function getReadOnly()
+ {
+ return $this->get('blocks.write') === 'true'; // ES returns a string for this setting
}
/**
@@ -123,11 +145,12 @@ class Settings
*/
public function getBlocksRead()
{
- return (bool)$this->get('blocks.read');
+ return (bool) $this->get('blocks.read');
}
/**
- * @param bool $state OPTIONAL (default = true)
+ * @param bool $state OPTIONAL (default = true)
+ *
* @return \Elastica\Response
*/
public function setBlocksRead($state = true)
@@ -142,18 +165,19 @@ class Settings
*/
public function getBlocksWrite()
{
- return (bool)$this->get('blocks.write');
+ return (bool) $this->get('blocks.write');
}
/**
- * @param bool $state OPTIONAL (default = true)
+ * @param bool $state OPTIONAL (default = true)
+ *
* @return \Elastica\Response
*/
public function setBlocksWrite($state = true)
{
$state = $state ? 1 : 0;
- return $this->set(array('blocks.write' => (int)$state));
+ return $this->set(array('blocks.write' => $state));
}
/**
@@ -161,27 +185,41 @@ class Settings
*/
public function getBlocksMetadata()
{
- return (bool)$this->get('blocks.metadata');
+ // TODO will have to be replace by block.metadata.write once https://github.com/elasticsearch/elasticsearch/pull/9203 has been fixed
+ // the try/catch will have to be remove too
+ try {
+ return (bool) $this->get('blocks.metadata');
+ } catch (ResponseException $e) {
+ if (strpos($e->getMessage(), 'ClusterBlockException') !== false) {
+ // hacky way to test if the metadata is blocked since bug 9203 is not fixed
+ return true;
+ } else {
+ throw $e;
+ }
+ }
}
/**
- * @param bool $state OPTIONAL (default = true)
+ * @param bool $state OPTIONAL (default = true)
+ *
* @return \Elastica\Response
*/
public function setBlocksMetadata($state = true)
{
+ // TODO will have to be replace by block.metadata.write once https://github.com/elasticsearch/elasticsearch/pull/9203 has been fixed
$state = $state ? 1 : 0;
- return $this->set(array('blocks.metadata' => (int)$state));
+ return $this->set(array('blocks.metadata' => $state));
}
/**
- * Sets the index refresh interval
+ * Sets the index refresh interval.
*
* Value can be for example 3s for 3 seconds or
* 5m for 5 minutes. -1 refreshing is disabled.
*
- * @param int $interval Number of seconds
+ * @param int $interval Number of milliseconds
+ *
* @return \Elastica\Response Response object
*/
public function setRefreshInterval($interval)
@@ -190,7 +228,7 @@ class Settings
}
/**
- * Returns the refresh interval
+ * Returns the refresh interval.
*
* If no interval is set, the default interval is returned
*
@@ -208,22 +246,23 @@ class Settings
}
/**
- * Return merge policy
+ * Return merge policy.
*
* @return string Merge policy type
*/
public function getMergePolicyType()
{
-
return $this->get('merge.policy.type');
}
/**
- * Sets merge policy
+ * Sets merge policy.
+ *
+ * @param string $type Merge policy type
*
- * @param string $type Merge policy type
* @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/index-modules/merge.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-merge.html
*/
public function setMergePolicyType($type)
{
@@ -235,30 +274,34 @@ class Settings
}
/**
- * Sets the specific merge policies
+ * Sets the specific merge policies.
*
* To have this changes made the index has to be closed and reopened
*
- * @param string $key Merge policy key (for ex. expunge_deletes_allowed)
- * @param string $value
+ * @param string $key Merge policy key (for ex. expunge_deletes_allowed)
+ * @param string $value
+ *
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/index-modules/merge.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-merge.html
*/
public function setMergePolicy($key, $value)
{
$this->getIndex()->close();
- $response = $this->set(array('merge.policy.' . $key => $value));
+ $response = $this->set(array('merge.policy.'.$key => $value));
$this->getIndex()->open();
return $response;
}
/**
- * Returns the specific merge policy value
+ * Returns the specific merge policy value.
+ *
+ * @param string $key Merge policy key (for ex. expunge_deletes_allowed)
*
- * @param string $key Merge policy key (for ex. expunge_deletes_allowed)
* @return string Refresh interval
- * @link http://www.elasticsearch.org/guide/reference/index-modules/merge.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-merge.html
*/
public function getMergePolicy($key)
{
@@ -266,13 +309,15 @@ class Settings
if (isset($settings['merge']['policy'][$key])) {
return $settings['merge']['policy'][$key];
}
- return null;
+
+ return;
}
/**
- * Can be used to set/update settings
+ * Can be used to set/update settings.
+ *
+ * @param array $data Arguments
*
- * @param array $data Arguments
* @return \Elastica\Response Response object
*/
public function set(array $data)
@@ -281,7 +326,7 @@ class Settings
}
/**
- * Returns the index object
+ * Returns the index object.
*
* @return \Elastica\Index Index object
*/
@@ -291,7 +336,7 @@ class Settings
}
/**
- * Updates the given settings for the index
+ * Updates the given settings for the index.
*
* With elasticsearch 0.16 the following settings are supported
* - index.term_index_interval
@@ -303,15 +348,18 @@ class Settings
* - index.merge.policy
* - index.auto_expand_replicas
*
- * @param array $data OPTIONAL Data array
- * @param string $method OPTIONAL Transfer method (default = \Elastica\Request::GET)
+ * @param array $data OPTIONAL Data array
+ * @param string $method OPTIONAL Transfer method (default = \Elastica\Request::GET)
+ *
* @return \Elastica\Response Response object
*/
public function request(array $data = array(), $method = Request::GET)
{
$path = '_settings';
- $data = array('index' => $data);
+ if (!empty($data)) {
+ $data = array('index' => $data);
+ }
return $this->getIndex()->request($path, $method, $data);
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Index/Stats.php b/vendor/ruflin/elastica/lib/Elastica/Index/Stats.php
index 9312e273..d86903dc 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Index/Stats.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Index/Stats.php
@@ -1,42 +1,41 @@
<?php
-
namespace Elastica\Index;
+
use Elastica\Index as BaseIndex;
use Elastica\Request;
/**
- * Elastica index stats object
+ * Elastica index stats object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-stats.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html
*/
class Stats
{
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Stats info
+ * Stats info.
*
* @var array Stats info
*/
protected $_data = array();
/**
- * Index
+ * Index.
*
* @var \Elastica\Index Index object
*/
protected $_index = null;
/**
- * Construct
+ * Construct.
*
* @param \Elastica\Index $index Index object
*/
@@ -47,7 +46,7 @@ class Stats
}
/**
- * Returns the raw stats info
+ * Returns the raw stats info.
*
* @return array Stats info
*/
@@ -70,7 +69,7 @@ class Stats
if (isset($data[$arg])) {
$data = $data[$arg];
} else {
- return null;
+ return;
}
}
@@ -78,7 +77,7 @@ class Stats
}
/**
- * Returns the index object
+ * Returns the index object.
*
* @return \Elastica\Index Index object
*/
@@ -88,7 +87,7 @@ class Stats
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -98,7 +97,7 @@ class Stats
}
/**
- * Reloads all status data of this object
+ * Reloads all status data of this object.
*/
public function refresh()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Index/Status.php b/vendor/ruflin/elastica/lib/Elastica/Index/Status.php
index 6a343025..0b9dff48 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Index/Status.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Index/Status.php
@@ -1,43 +1,41 @@
<?php
-
namespace Elastica\Index;
-use Elastica\Cluster;
+
use Elastica\Index as BaseIndex;
use Elastica\Request;
/**
- * Elastica index status object
+ * Elastica index status object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-status.html
*/
class Status
{
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Stats info
+ * Stats info.
*
* @var array Stats info
*/
protected $_data = array();
/**
- * Index
+ * Index.
*
* @var \Elastica\Index Index object
*/
protected $_index = null;
/**
- * Construct
+ * Construct.
*
* @param \Elastica\Index $index Index object
*/
@@ -48,7 +46,7 @@ class Status
}
/**
- * Returns all status info
+ * Returns all status info.
*
* @return array Status info
*/
@@ -72,7 +70,7 @@ class Status
if (isset($data[$arg])) {
$data = $data[$arg];
} else {
- return null;
+ return;
}
}
@@ -80,31 +78,39 @@ class Status
}
/**
- * Returns all index aliases
+ * Returns all index aliases.
*
* @return array Aliases
*/
public function getAliases()
{
$responseData = $this->getIndex()->request('_aliases', \Elastica\Request::GET)->getData();
- return array_keys($responseData[$this->getIndex()->getName()]['aliases']);
+
+ $data = $responseData[$this->getIndex()->getName()];
+ if (!empty($data['aliases'])) {
+ return array_keys($data['aliases']);
+ }
+
+ return array();
}
/**
- * Returns all index settings
+ * Returns all index settings.
*
* @return array Index settings
*/
public function getSettings()
{
$responseData = $this->getIndex()->request('_settings', \Elastica\Request::GET)->getData();
+
return $responseData[$this->getIndex()->getName()]['settings'];
}
/**
- * Checks if the index has the given alias
+ * Checks if the index has the given alias.
+ *
+ * @param string $name Alias name
*
- * @param string $name Alias name
* @return bool
*/
public function hasAlias($name)
@@ -113,7 +119,7 @@ class Status
}
/**
- * Returns the index object
+ * Returns the index object.
*
* @return \Elastica\Index Index object
*/
@@ -123,7 +129,7 @@ class Status
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -133,7 +139,7 @@ class Status
}
/**
- * Reloads all status data of this object
+ * Reloads all status data of this object.
*/
public function refresh()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/JSON.php b/vendor/ruflin/elastica/lib/Elastica/JSON.php
index 07869821..921bc484 100644
--- a/vendor/ruflin/elastica/lib/Elastica/JSON.php
+++ b/vendor/ruflin/elastica/lib/Elastica/JSON.php
@@ -1,23 +1,22 @@
<?php
-
namespace Elastica;
use Elastica\Exception\JSONParseException;
/**
- * Elastica JSON tools
- *
- * @package Elastica
+ * Elastica JSON tools.
*/
class JSON
{
/**
- * Parse JSON string to an array
+ * Parse JSON string to an array.
*
- * @param string $json JSON string to parse
- * @return array PHP array representation of JSON string
* @link http://php.net/manual/en/function.json-decode.php
- * @link http://www.php.net/manual/en/function.json-last-error.php
+ * @link http://php.net/manual/en/function.json-last-error.php
+ *
+ * @param string $json JSON string to parse
+ *
+ * @return array PHP array representation of JSON string
*/
public static function parse(/* inherit from json_decode */)
{
@@ -43,11 +42,13 @@ class JSON
}
/**
- * Convert input to JSON string with standard options
+ * Convert input to JSON string with standard options.
+ *
+ * @link http://php.net/manual/en/function.json-encode.php
*
* @param mixed check args for PHP function json_encode
+ *
* @return string Valid JSON representation of $input
- * @link http://php.net/manual/en/function.json-encode.php
*/
public static function stringify(/* inherit from json_encode */)
{
@@ -57,8 +58,7 @@ class JSON
// allow special options value for Elasticsearch compatibility
if (sizeof($args) > 1 && $args[1] === 'JSON_ELASTICSEARCH') {
// Use built in JSON constants if available (php >= 5.4)
- $args[1] = (defined('JSON_UNESCAPED_SLASHES') ? JSON_UNESCAPED_SLASHES : 64)
- | (defined('JSON_UNESCAPED_UNICODE') ? JSON_UNESCAPED_UNICODE : 256);
+ $args[1] = defined('JSON_UNESCAPED_UNICODE') ? JSON_UNESCAPED_UNICODE : 256;
}
// run encode and output
diff --git a/vendor/ruflin/elastica/lib/Elastica/Log.php b/vendor/ruflin/elastica/lib/Elastica/Log.php
index b246a7b1..c2f0c18a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Log.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Log.php
@@ -1,35 +1,31 @@
<?php
-
namespace Elastica;
-use Elastica\JSON;
use Psr\Log\AbstractLogger;
/**
- * Elastica log object
+ * Elastica log object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Log extends AbstractLogger
{
/**
- * Log path or true if enabled
+ * Log path or true if enabled.
*
* @var string|bool
*/
protected $_log = true;
/**
- * Last logged message
+ * Last logged message.
*
* @var string Last logged message
*/
protected $_lastMessage = '';
/**
- * Inits log object
+ * Inits log object.
*
* @param string|bool String to set a specific file for logging
*/
@@ -39,11 +35,12 @@ class Log extends AbstractLogger
}
/**
- * Log a message
+ * Log a message.
*
- * @param mixed $level
+ * @param mixed $level
* @param string $message
- * @param array $context
+ * @param array $context
+ *
* @return null|void
*/
public function log($level, $message, array $context = array())
@@ -52,18 +49,18 @@ class Log extends AbstractLogger
$this->_lastMessage = JSON::stringify($context);
if (!empty($this->_log) && is_string($this->_log)) {
- error_log($this->_lastMessage . PHP_EOL, 3, $this->_log);
+ error_log($this->_lastMessage.PHP_EOL, 3, $this->_log);
} else {
error_log($this->_lastMessage);
}
-
}
/**
- * Enable/disable log or set log path
+ * Enable/disable log or set log path.
+ *
+ * @param bool|string $log Enables log or sets log path
*
- * @param bool|string $log Enables log or sets log path
- * @return \Elastica\Log
+ * @return $this
*/
public function setLog($log)
{
@@ -73,7 +70,7 @@ class Log extends AbstractLogger
}
/**
- * Return last logged message
+ * Return last logged message.
*
* @return string Last logged message
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Multi/ResultSet.php b/vendor/ruflin/elastica/lib/Elastica/Multi/ResultSet.php
index a0df5785..4d4186af 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Multi/ResultSet.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Multi/ResultSet.php
@@ -1,44 +1,42 @@
<?php
-
namespace Elastica\Multi;
+
use Elastica\Exception\InvalidException;
use Elastica\Response;
-use Elastica\Search as BaseSearch;
use Elastica\ResultSet as BaseResultSet;
+use Elastica\Search as BaseSearch;
/**
* Elastica multi search result set
- * List of result sets for each search request
+ * List of result sets for each search request.
*
- * @category Xodoa
- * @package Elastica
* @author munkie
*/
class ResultSet implements \Iterator, \ArrayAccess, \Countable
{
/**
- * Result Sets
+ * Result Sets.
*
* @var array|\Elastica\ResultSet[] Result Sets
*/
protected $_resultSets = array();
/**
- * Current position
+ * Current position.
*
* @var int Current position
*/
protected $_position = 0;
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response;
/**
- * Constructs ResultSet object
+ * Constructs ResultSet object.
*
* @param \Elastica\Response $response
* @param array|\Elastica\Search[] $searches
@@ -50,8 +48,9 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * @param \Elastica\Response $response
- * @param array|\Elastica\Search[] $searches
+ * @param \Elastica\Response $response
+ * @param array|\Elastica\Search[] $searches
+ *
* @throws \Elastica\Exception\InvalidException
*/
protected function _init(Response $response, array $searches)
@@ -65,9 +64,9 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
$currentSearch = each($searches);
if ($currentSearch === false) {
- throw new InvalidException('No result found for search #' . $key);
+ throw new InvalidException('No result found for search #'.$key);
} elseif (!$currentSearch['value'] instanceof BaseSearch) {
- throw new InvalidException('Invalid object for search #' . $key . ' provided. Should be Elastica\Search');
+ throw new InvalidException('Invalid object for search #'.$key.' provided. Should be Elastica\Search');
}
$search = $currentSearch['value'];
@@ -88,7 +87,7 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -98,7 +97,7 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * There is at least one result set with error
+ * There is at least one result set with error.
*
* @return bool
*/
@@ -126,7 +125,6 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * @return void
*/
public function next()
{
@@ -150,7 +148,6 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * @return void
*/
public function rewind()
{
@@ -166,8 +163,9 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
}
/**
- * @param string|int $offset
- * @return boolean true on success or false on failure.
+ * @param string|int $offset
+ *
+ * @return bool true on success or false on failure.
*/
public function offsetExists($offset)
{
@@ -176,6 +174,7 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
/**
* @param mixed $offset
+ *
* @return mixed Can return all value types.
*/
public function offsetGet($offset)
@@ -186,7 +185,6 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
/**
* @param mixed $offset
* @param mixed $value
- * @return void
*/
public function offsetSet($offset, $value)
{
@@ -199,7 +197,6 @@ class ResultSet implements \Iterator, \ArrayAccess, \Countable
/**
* @param mixed $offset
- * @return void
*/
public function offsetUnset($offset)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Multi/Search.php b/vendor/ruflin/elastica/lib/Elastica/Multi/Search.php
index a9874eb2..294fc0a7 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Multi/Search.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Multi/Search.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Multi;
use Elastica\Client;
@@ -8,12 +7,11 @@ use Elastica\Request;
use Elastica\Search as BaseSearch;
/**
- * Elastica multi search
+ * Elastica multi search.
*
- * @category Xodoa
- * @package Elastica
* @author munkie
- * @link http://www.elasticsearch.org/guide/reference/api/multi-search.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
*/
class Search
{
@@ -33,7 +31,7 @@ class Search
protected $_client;
/**
- * Constructs search object
+ * Constructs search object.
*
* @param \Elastica\Client $client Client object
*/
@@ -51,8 +49,9 @@ class Search
}
/**
- * @param \Elastica\Client $client
- * @return \Elastica\Multi\Search
+ * @param \Elastica\Client $client
+ *
+ * @return $this
*/
public function setClient(Client $client)
{
@@ -62,7 +61,7 @@ class Search
}
/**
- * @return \Elastica\Multi\Search
+ * @return $this
*/
public function clearSearches()
{
@@ -71,25 +70,27 @@ class Search
return $this;
}
- /**
- * @param \Elastica\Search $search
- * @param string $key Optional key
- * @return \Elastica\Multi\Search
- */
+ /**
+ * @param \Elastica\Search $search
+ * @param string $key Optional key
+ *
+ * @return $this
+ */
public function addSearch(BaseSearch $search, $key = null)
{
if ($key) {
- $this->_searches[$key] = $search;
+ $this->_searches[$key] = $search;
} else {
- $this->_searches[] = $search;
+ $this->_searches[] = $search;
}
return $this;
}
/**
- * @param array|\Elastica\Search[] $searches
- * @return \Elastica\Multi\Search
+ * @param array|\Elastica\Search[] $searches
+ *
+ * @return $this
*/
public function addSearches(array $searches)
{
@@ -101,8 +102,9 @@ class Search
}
/**
- * @param array|\Elastica\Search[] $searches
- * @return \Elastica\Multi\Search
+ * @param array|\Elastica\Search[] $searches
+ *
+ * @return $this
*/
public function setSearches(array $searches)
{
@@ -121,8 +123,9 @@ class Search
}
/**
- * @param string $searchType
- * @return \Elastica\Multi\Search
+ * @param string $searchType
+ *
+ * @return $this
*/
public function setSearchType($searchType)
{
@@ -155,30 +158,32 @@ class Search
{
$data = '';
foreach ($this->getSearches() as $search) {
- $data.= $this->_getSearchData($search);
+ $data .= $this->_getSearchData($search);
}
return $data;
}
/**
- * @param \Elastica\Search $search
+ * @param \Elastica\Search $search
+ *
* @return string
*/
protected function _getSearchData(BaseSearch $search)
{
$header = $this->_getSearchDataHeader($search);
- $header = (empty($header)) ? new \stdClass : $header;
+ $header = (empty($header)) ? new \stdClass() : $header;
$query = $search->getQuery();
- $data = JSON::stringify($header) . "\n";
- $data.= JSON::stringify($query->toArray()) . "\n";
+ $data = JSON::stringify($header)."\n";
+ $data .= JSON::stringify($query->toArray())."\n";
return $data;
}
/**
- * @param \Elastica\Search $search
+ * @param \Elastica\Search $search
+ *
* @return array
*/
protected function _getSearchDataHeader(BaseSearch $search)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Node.php b/vendor/ruflin/elastica/lib/Elastica/Node.php
index a9684ca6..1453418d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Node.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Node.php
@@ -1,72 +1,97 @@
<?php
-
namespace Elastica;
+
use Elastica\Node\Info;
use Elastica\Node\Stats;
/**
- * Elastica cluster node object
+ * Elastica cluster node object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
*/
class Node
{
/**
- * Client
+ * Client.
*
* @var \Elastica\Client
*/
protected $_client = null;
/**
- * Node name
+ * @var string Unique node id
+ */
+ protected $_id = '';
+
+ /**
+ * Node name.
*
* @var string Node name
*/
protected $_name = '';
/**
- * Node stats
+ * Node stats.
*
* @var \Elastica\Node\Stats Node Stats
*/
protected $_stats = null;
/**
- * Node info
+ * Node info.
*
* @var \Elastica\Node\Info Node info
*/
protected $_info = null;
/**
- * Create a new node object
+ * Create a new node object.
*
- * @param string $name Node name
+ * @param string $id Node id or name
* @param \Elastica\Client $client Node object
*/
- public function __construct($name, Client $client)
+ public function __construct($id, Client $client)
{
- $this->_name = $name;
$this->_client = $client;
- $this->refresh();
+ $this->setId($id);
+ }
+
+ /**
+ * @return string Unique node id. Can also be name if id not exists.
+ */
+ public function getId()
+ {
+ return $this->_id;
}
/**
- * Get the name of the node
+ * @param string $id Node id
+ *
+ * @return $this Refreshed object
+ */
+ public function setId($id)
+ {
+ $this->_id = $id;
+
+ return $this->refresh();
+ }
+
+ /**
+ * Get the name of the node.
*
* @return string Node name
*/
public function getName()
{
+ if (empty($this->_name)) {
+ $this->_name = $this->getInfo()->getName();
+ }
+
return $this->_name;
}
/**
- * Returns the current client object
+ * Returns the current client object.
*
* @return \Elastica\Client Client
*/
@@ -76,7 +101,9 @@ class Node
}
/**
- * Return stats object of the current node
+ * Return stats object of the current node.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html
*
* @return \Elastica\Node\Stats Node stats
*/
@@ -90,7 +117,9 @@ class Node
}
/**
- * Return info object of the current node
+ * Return info object of the current node.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html
*
* @return \Elastica\Node\Info Node info object
*/
@@ -104,7 +133,7 @@ class Node
}
/**
- * Refreshes all node information
+ * Refreshes all node information.
*
* This should be called after updating a node to refresh all information
*/
@@ -115,15 +144,17 @@ class Node
}
/**
- * Shuts this node down
+ * Shuts this node down.
+ *
+ * @param string $delay OPTIONAL Delay after which node is shut down (default = 1s)
*
- * @param string $delay OPTIONAL Delay after which node is shut down (default = 1s)
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-shutdown.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html
*/
public function shutdown($delay = '1s')
{
- $path = '_cluster/nodes/' . $this->getName() . '/_shutdown?delay=' . $delay;
+ $path = '_cluster/nodes/'.$this->getId().'/_shutdown?delay='.$delay;
return $this->_client->request($path, Request::POST);
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Node/Info.php b/vendor/ruflin/elastica/lib/Elastica/Node/Info.php
index 1d04e53d..25734641 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Node/Info.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Node/Info.php
@@ -1,53 +1,51 @@
<?php
-
namespace Elastica\Node;
use Elastica\Node as BaseNode;
use Elastica\Request;
/**
- * Elastica cluster node object
+ * Elastica cluster node object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-status.html
*/
class Info
{
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Stats data
+ * Stats data.
*
* @var array stats data
*/
protected $_data = array();
/**
- * Node
+ * Node.
*
* @var \Elastica\Node Node object
*/
protected $_node = null;
/**
- * Query parameters
+ * Query parameters.
*
* @var array
*/
protected $_params = array();
/**
- * Create new info object for node
+ * Create new info object for node.
*
* @param \Elastica\Node $node Node object
- * @param array $params List of params to return. Can be: settings, os, process, jvm, thread_pool, network, transport, http
+ * @param array $params List of params to return. Can be: settings, os, process, jvm, thread_pool, network, transport, http
*/
public function __construct(BaseNode $node, array $params = array())
{
@@ -73,7 +71,7 @@ class Info
if (isset($data[$arg])) {
$data = $data[$arg];
} else {
- return null;
+ return;
}
}
@@ -81,7 +79,7 @@ class Info
}
/**
- * Return port of the node
+ * Return port of the node.
*
* @return string Returns Node port
*/
@@ -96,7 +94,7 @@ class Info
}
/**
- * Return IP of the node
+ * Return IP of the node.
*
* @return string Returns Node ip address
*/
@@ -111,37 +109,43 @@ class Info
}
/**
- * Return data regarding plugins installed on this node
+ * Return data regarding plugins installed on this node.
+ *
* @return array plugin data
- * @link http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-info/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html
*/
public function getPlugins()
{
- if(!in_array('plugins', $this->_params)) {
+ if (!in_array('plugins', $this->_params)) {
//Plugin data was not retrieved when refresh() was called last. Get it now.
$this->_params[] = 'plugins';
$this->refresh($this->_params);
}
+
return $this->get('plugins');
}
/**
- * Check if the given plugin is installed on this node
+ * Check if the given plugin is installed on this node.
+ *
* @param string $name plugin name
+ *
* @return bool true if the plugin is installed, false otherwise
*/
public function hasPlugin($name)
{
- foreach($this->getPlugins() as $plugin) {
- if($plugin['name'] == $name) {
+ foreach ($this->getPlugins() as $plugin) {
+ if ($plugin['name'] == $name) {
return true;
}
}
+
return false;
}
/**
- * Return all info data
+ * Return all info data.
*
* @return array Data array
*/
@@ -151,7 +155,7 @@ class Info
}
/**
- * Return node object
+ * Return node object.
*
* @return \Elastica\Node Node object
*/
@@ -161,7 +165,23 @@ class Info
}
/**
- * Returns response object
+ * @return string Unique node id
+ */
+ public function getId()
+ {
+ return $this->_id;
+ }
+
+ /**
+ * @return string Node name
+ */
+ public function getName()
+ {
+ return $this->_data['name'];
+ }
+
+ /**
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -171,26 +191,30 @@ class Info
}
/**
- * Reloads all nodes information. Has to be called if informations changed
+ * Reloads all nodes information. Has to be called if informations changed.
+ *
+ * @param array $params Params to return (default none). Possible options: settings, os, process, jvm, thread_pool, network, transport, http, plugin
*
- * @param array $params Params to return (default none). Possible options: settings, os, process, jvm, thread_pool, network, transport, http, plugin
* @return \Elastica\Response Response object
*/
public function refresh(array $params = array())
{
$this->_params = $params;
- $path = '_nodes/' . $this->getNode()->getName();
+ $path = '_nodes/'.$this->getNode()->getId();
if (!empty($params)) {
$path .= '?';
foreach ($params as $param) {
- $path .= $param . '=true&';
+ $path .= $param.'=true&';
}
}
$this->_response = $this->getNode()->getClient()->request($path, Request::GET);
$data = $this->getResponse()->getData();
+
$this->_data = reset($data['nodes']);
+ $this->_id = key($data['nodes']);
+ $this->getNode()->setId($this->getId());
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Node/Stats.php b/vendor/ruflin/elastica/lib/Elastica/Node/Stats.php
index d918e686..1af94b07 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Node/Stats.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Node/Stats.php
@@ -1,43 +1,41 @@
<?php
-
namespace Elastica\Node;
use Elastica\Node as BaseNode;
use Elastica\Request;
/**
- * Elastica cluster node object
+ * Elastica cluster node object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-status.html
*/
class Stats
{
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Stats data
+ * Stats data.
*
* @var array stats data
*/
protected $_data = array();
/**
- * Node
+ * Node.
*
* @var \Elastica\Node Node object
*/
protected $_node = null;
/**
- * Create new stats for node
+ * Create new stats for node.
*
* @param \Elastica\Node $node Elastica node object
*/
@@ -48,7 +46,7 @@ class Stats
}
/**
- * Returns all node stats as array based on the arguments
+ * Returns all node stats as array based on the arguments.
*
* Several arguments can be use
* get('index', 'test', 'example')
@@ -63,7 +61,7 @@ class Stats
if (isset($data[$arg])) {
$data = $data[$arg];
} else {
- return null;
+ return;
}
}
@@ -71,7 +69,7 @@ class Stats
}
/**
- * Returns all stats data
+ * Returns all stats data.
*
* @return array Data array
*/
@@ -81,7 +79,7 @@ class Stats
}
/**
- * Returns node object
+ * Returns node object.
*
* @return \Elastica\Node Node object
*/
@@ -91,7 +89,7 @@ class Stats
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -101,13 +99,13 @@ class Stats
}
/**
- * Reloads all nodes information. Has to be called if informations changed
+ * Reloads all nodes information. Has to be called if informations changed.
*
* @return \Elastica\Response Response object
*/
public function refresh()
{
- $path = '_nodes/' . $this->getNode()->getName() . '/stats';
+ $path = '_nodes/'.$this->getNode()->getName().'/stats';
$this->_response = $this->getNode()->getClient()->request($path, Request::GET);
$data = $this->getResponse()->getData();
$this->_data = reset($data['nodes']);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Param.php b/vendor/ruflin/elastica/lib/Elastica/Param.php
index 38a45d14..484fbbc3 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Param.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Param.php
@@ -1,28 +1,26 @@
<?php
-
namespace Elastica;
+
use Elastica\Exception\InvalidException;
/**
- * Class to handle params
+ * Class to handle params.
*
* This function can be used to handle params for queries, filter, facets
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Param
{
/**
- * Params
+ * Params.
*
* @var array
*/
protected $_params = array();
/**
- * Raw Params
+ * Raw Params.
*
* @var array
*/
@@ -31,7 +29,7 @@ class Param
/**
* Converts the params to an array. A default implementation exist to create
* the an array out of the class name (last part of the class name)
- * and the params
+ * and the params.
*
* @return array Filter array
*/
@@ -49,7 +47,7 @@ class Param
/**
* Param's name
* Picks the last part of the class name and makes it snake_case
- * You can override this method if you want to change the name
+ * You can override this method if you want to change the name.
*
* @return string name
*/
@@ -59,11 +57,12 @@ class Param
}
/**
- * Sets params not inside params array
+ * Sets params not inside params array.
+ *
+ * @param string $key
+ * @param mixed $value
*
- * @param string $key
- * @param mixed $value
- * @return \Elastica\Param
+ * @return $this
*/
protected function _setRawParam($key, $value)
{
@@ -73,11 +72,12 @@ class Param
}
/**
- * Sets (overwrites) the value at the given key
+ * Sets (overwrites) the value at the given key.
*
- * @param string $key Key to set
- * @param mixed $value Key Value
- * @return \Elastica\Param
+ * @param string $key Key to set
+ * @param mixed $value Key Value
+ *
+ * @return $this
*/
public function setParam($key, $value)
{
@@ -87,10 +87,11 @@ class Param
}
/**
- * Sets (overwrites) all params of this object
+ * Sets (overwrites) all params of this object.
+ *
+ * @param array $params Parameter list
*
- * @param array $params Parameter list
- * @return \Elastica\Param
+ * @return $this
*/
public function setParams(array $params)
{
@@ -104,46 +105,50 @@ class Param
*
* This function can be used to add an array of params
*
- * @param string $key Param key
- * @param mixed $value Value to set
- * @return \Elastica\Param
+ * @param string $key Param key
+ * @param mixed $value Value to set
+ *
+ * @return $this
*/
public function addParam($key, $value)
{
- if($key != null) {
+ if ($key != null) {
if (!isset($this->_params[$key])) {
$this->_params[$key] = array();
}
$this->_params[$key][] = $value;
} else {
- $this->_params = $value;
+ $this->_params = $value;
}
return $this;
}
/**
- * Returns a specific param
+ * Returns a specific param.
+ *
+ * @param string $key Key to return
*
- * @param string $key Key to return
- * @return mixed Key value
* @throws \Elastica\Exception\InvalidException If requested key is not set
+ *
+ * @return mixed Key value
*/
public function getParam($key)
{
if (!$this->hasParam($key)) {
- throw new InvalidException('Param ' . $key . ' does not exist');
+ throw new InvalidException('Param '.$key.' does not exist');
}
return $this->_params[$key];
}
/**
- * Test if a param is set
+ * Test if a param is set.
+ *
+ * @param string $key Key to test
*
- * @param string $key Key to test
- * @return boolean True if the param is set, false otherwise
+ * @return bool True if the param is set, false otherwise
*/
public function hasParam($key)
{
@@ -151,7 +156,7 @@ class Param
}
/**
- * Returns the params array
+ * Returns the params array.
*
* @return array Params
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Percolator.php b/vendor/ruflin/elastica/lib/Elastica/Percolator.php
index 2ec312b9..98d0490a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Percolator.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Percolator.php
@@ -1,26 +1,44 @@
<?php
-
namespace Elastica;
/**
- * Percolator class
+ * Percolator class.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/percolate/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-percolate.html
*/
class Percolator
{
+ const EXTRA_FILTER = 'filter';
+ const EXTRA_QUERY = 'query';
+ const EXTRA_SIZE = 'size';
+ const EXTRA_TRACK_SCORES = 'track_scores';
+ const EXTRA_SORT = 'sort';
+ const EXTRA_FACETS = 'facets';
+ const EXTRA_AGGS = 'aggs';
+ const EXTRA_HIGHLIGHT = 'highlight';
+
+ private $_extraRequestBodyOptions = array(
+ self::EXTRA_FILTER,
+ self::EXTRA_QUERY,
+ self::EXTRA_SIZE,
+ self::EXTRA_TRACK_SCORES,
+ self::EXTRA_SORT,
+ self::EXTRA_FACETS,
+ self::EXTRA_AGGS,
+ self::EXTRA_HIGHLIGHT,
+ );
+
/**
- * Index object
+ * Index object.
*
* @var \Elastica\Index
*/
protected $_index = null;
/**
- * Construct new percolator
+ * Construct new percolator.
*
* @param \Elastica\Index $index
*/
@@ -32,15 +50,16 @@ class Percolator
/**
* Registers a percolator query, with optional extra fields to include in the registered query.
*
- * @param string $name Query name
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to add
- * @param array $fields Extra fields to include in the registered query
- * and can be used to filter executed queries.
+ * @param string $name Query name
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to add
+ * @param array $fields Extra fields to include in the registered query
+ * and can be used to filter executed queries.
+ *
* @return \Elastica\Response
*/
public function registerQuery($name, $query, $fields = array())
{
- $path = $this->_index->getName() . '/.percolator/' . $name;
+ $path = $this->_index->getName().'/.percolator/'.$name;
$query = Query::create($query);
$data = array_merge($query->toArray(), $fields);
@@ -49,58 +68,100 @@ class Percolator
}
/**
- * Removes a percolator query
- * @param string $name query name
+ * Removes a percolator query.
+ *
+ * @param string $name query name
+ *
* @return \Elastica\Response
*/
public function unregisterQuery($name)
{
- $path = $this->_index->getName() . '/.percolator/' . $name;
+ $path = $this->_index->getName().'/.percolator/'.$name;
return $this->_index->getClient()->request($path, Request::DELETE);
}
/**
- * Match a document to percolator queries
+ * Match a document to percolator queries.
*
- * @param \Elastica\Document $doc
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to filter the percolator queries which
+ * @param \Elastica\Document $doc
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to filter the percolator queries which
* are executed.
- * @param string $type
- * @param array $params
+ * @param string $type
+ * @param array $params Supports setting additional request body options to the percolate request.
+ * [ Percolator::EXTRA_FILTER,
+ * Percolator::EXTRA_QUERY,
+ * Percolator::EXTRA_SIZE,
+ * Percolator::EXTRA_TRACK_SCORES,
+ * Percolator::EXTRA_SORT,
+ * Percolator::EXTRA_FACETS,
+ * Percolator::EXTRA_AGGS,
+ * Percolator::EXTRA_HIGHLIGHT ]
+ *
* @return array With matching registered queries.
*/
public function matchDoc(Document $doc, $query = null, $type = 'type', $params = array())
{
- $path = $this->_index->getName() . '/' . $type . '/_percolate';
+ $path = $this->_index->getName().'/'.$type.'/_percolate';
$data = array('doc' => $doc->getData());
+ $this->_applyAdditionalRequestBodyOptions($params, $data);
+
return $this->_percolate($path, $query, $data, $params);
}
/**
- * Percolating an existing document
+ * Percolating an existing document.
*
- * @param string $id
- * @param string $type
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to filter the percolator queries which
+ * @param string $id
+ * @param string $type
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query Query to filter the percolator queries which
* are executed.
- * @param array $params
+ * @param array $params Supports setting additional request body options to the percolate request.
+ * [ Percolator::EXTRA_FILTER,
+ * Percolator::EXTRA_QUERY,
+ * Percolator::EXTRA_SIZE,
+ * Percolator::EXTRA_TRACK_SCORES,
+ * Percolator::EXTRA_SORT,
+ * Percolator::EXTRA_FACETS,
+ * Percolator::EXTRA_AGGS,
+ * Percolator::EXTRA_HIGHLIGHT ]
+ *
* @return array With matching registered queries.
*/
public function matchExistingDoc($id, $type, $query = null, $params = array())
{
$id = urlencode($id);
- $path = $this->_index->getName() . '/' . $type . '/'. $id . '/_percolate';
+ $path = $this->_index->getName().'/'.$type.'/'.$id.'/_percolate';
+
+ $data = array();
+ $this->_applyAdditionalRequestBodyOptions($params, $data);
- return $this->_percolate($path, $query, array(), $params);
+ return $this->_percolate($path, $query, $data, $params);
+ }
+
+ /**
+ * Process the provided parameters and apply them to the data array.
+ *
+ * @param &$params
+ * @param &$data
+ */
+ protected function _applyAdditionalRequestBodyOptions(&$params, &$data)
+ {
+ foreach ($params as $key => $value) {
+ if (in_array($key, $this->_extraRequestBodyOptions)) {
+ $data[$key] = $params[$key];
+ unset($params[$key]);
+ }
+ }
}
/**
- * @param string $path
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query] $query [description]
- * @param array $data
- * @param array $params
+ * @param string $path
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query] $query [description]
+ * @param array $data
+ * @param array $params
+ *
* @return array
*/
protected function _percolate($path, $query, $data = array(), $params = array())
@@ -117,11 +178,12 @@ class Percolator
if (isset($data['matches'])) {
return $data['matches'];
}
+
return array();
}
/**
- * Return index object
+ * Return index object.
*
* @return \Elastica\Index
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query.php b/vendor/ruflin/elastica/lib/Elastica/Query.php
index 2f37f2ea..175c8c95 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query.php
@@ -1,6 +1,6 @@
<?php
-
namespace Elastica;
+
use Elastica\Aggregation\AbstractAggregation;
use Elastica\Exception\InvalidException;
use Elastica\Exception\NotImplementedException;
@@ -10,36 +10,34 @@ use Elastica\Query\AbstractQuery;
use Elastica\Query\MatchAll;
use Elastica\Query\QueryString;
use Elastica\Suggest\AbstractSuggest;
-use Elastica\Suggest;
/**
- * Elastica query object
+ * 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/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html
*/
class Query extends Param
{
/**
- * Params
+ * Params.
*
* @var array Params
*/
protected $_params = array();
-
+
/**
- * Suggest query or not
- *
- * @var int Suggest
- */
+ * Suggest query or not.
+ *
+ * @var int Suggest
+ */
protected $_suggest = 0;
/**
- * Creates a query object
+ * Creates a query object.
*
* @param array|\Elastica\Query\AbstractQuery $query OPTIONAL Query object (default = null)
*/
@@ -55,24 +53,26 @@ class Query extends Param
}
/**
- * Transforms a string or an array to a query object
+ * Transforms a string or an array to a query object.
*
* If query is empty,
*
- * @param mixed $query
+ * @param mixed $query
+ *
* @throws \Elastica\Exception\NotImplementedException
- * @return \Elastica\Query
+ *
+ * @return self
*/
public static function create($query)
{
switch (true) {
- case $query instanceof Query:
+ case $query instanceof self:
return $query;
case $query instanceof AbstractQuery:
return new self($query);
case $query instanceof AbstractFilter:
$newQuery = new self();
- $newQuery->setFilter($query);
+ $newQuery->setPostFilter($query);
return $newQuery;
case empty($query):
@@ -94,10 +94,11 @@ class Query extends Param
}
/**
- * Sets query as raw array. Will overwrite all already set arguments
+ * Sets query as raw array. Will overwrite all already set arguments.
*
- * @param array $query Query array
- * @return \Elastica\Query Query object
+ * @param array $query Query array
+ *
+ * @return $this
*/
public function setRawQuery(array $query)
{
@@ -107,10 +108,11 @@ class Query extends Param
}
/**
- * Sets the query
+ * Sets the query.
+ *
+ * @param \Elastica\Query\AbstractQuery $query Query object
*
- * @param \Elastica\Query\AbstractQuery $query Query object
- * @return \Elastica\Query Query object
+ * @return $this
*/
public function setQuery(AbstractQuery $query)
{
@@ -118,7 +120,7 @@ class Query extends Param
}
/**
- * Gets the query array
+ * Gets the query array.
*
* @return array
**/
@@ -128,21 +130,28 @@ class Query extends Param
}
/**
- * Set Filter
+ * Set Filter.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter Filter object
+ *
+ * @return $this
*
- * @param \Elastica\Filter\AbstractFilter $filter Filter object
- * @return \Elastica\Query Current object
+ * @link https://github.com/elasticsearch/elasticsearch/issues/7422
+ * @deprecated
*/
public function setFilter(AbstractFilter $filter)
{
- return $this->setParam('filter', $filter->toArray());
+ trigger_error('Deprecated: Elastica\Query::setFilter() is deprecated. Use Elastica\Query::setPostFilter() instead.', E_USER_DEPRECATED);
+
+ return $this->setPostFilter($filter);
}
/**
- * Sets the start from which the search results should be returned
+ * Sets the start from which the search results should be returned.
+ *
+ * @param int $from
*
- * @param int $from
- * @return \Elastica\Query Query object
+ * @return $this
*/
public function setFrom($from)
{
@@ -151,11 +160,13 @@ class Query extends Param
/**
* Sets sort arguments for the query
- * Replaces existing values
+ * Replaces existing values.
+ *
+ * @param array $sortArgs Sorting arguments
*
- * @param array $sortArgs Sorting arguments
- * @return \Elastica\Query Query object
- * @link http://www.elasticsearch.org/guide/reference/api/search/sort.html
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html
*/
public function setSort(array $sortArgs)
{
@@ -163,11 +174,13 @@ class Query extends Param
}
/**
- * Adds a sort param to the query
+ * Adds a sort param to the query.
+ *
+ * @param mixed $sort Sort parameter
*
- * @param mixed $sort Sort parameter
- * @return \Elastica\Query Query object
- * @link http://www.elasticsearch.org/guide/reference/api/search/sort.html
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html
*/
public function addSort($sort)
{
@@ -175,11 +188,13 @@ class Query extends Param
}
/**
- * Sets highlight arguments for the query
+ * Sets highlight arguments for the query.
+ *
+ * @param array $highlightArgs Set all highlight arguments
*
- * @param array $highlightArgs Set all highlight arguments
- * @return \Elastica\Query Query object
- * @link http://www.elasticsearch.org/guide/reference/api/search/highlighting.html
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html
*/
public function setHighlight(array $highlightArgs)
{
@@ -187,11 +202,13 @@ class Query extends Param
}
/**
- * Adds a highlight argument
+ * Adds a highlight argument.
+ *
+ * @param mixed $highlight Add highlight argument
*
- * @param mixed $highlight Add highlight argument
- * @return \Elastica\Query Query object
- * @link http://www.elasticsearch.org/guide/reference/api/search/highlighting.html
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html
*/
public function addHighlight($highlight)
{
@@ -199,23 +216,25 @@ class Query extends Param
}
/**
- * Sets maximum number of results for this query
+ * Sets maximum number of results for this query.
+ *
+ * @param int $size OPTIONAL Maximal number of results for query (default = 10)
*
- * @param int $size OPTIONAL Maximal number of results for query (default = 10)
- * @return \Elastica\Query Query object
+ * @return $this
*/
public function setSize($size = 10)
{
return $this->setParam('size', $size);
-
}
/**
- * Alias for setSize
+ * 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
+ *
+ * @param int $limit OPTIONAL Maximal number of results for query (default = 10)
+ *
+ * @return $this
*/
public function setLimit($limit = 10)
{
@@ -223,11 +242,13 @@ class Query extends Param
}
/**
- * Enables explain on the query
+ * Enables explain on the query.
+ *
+ * @param bool $explain OPTIONAL Enabled or disable explain (default = true)
+ *
+ * @return $this
*
- * @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
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-explain.html
*/
public function setExplain($explain = true)
{
@@ -235,11 +256,13 @@ class Query extends Param
}
/**
- * Enables version on the query
+ * 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
+ * @param bool $version OPTIONAL Enabled or disable version (default = true)
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-version.html
*/
public function setVersion($version = true)
{
@@ -248,10 +271,14 @@ class Query extends Param
/**
* Sets the fields to be returned by the search
+ * NOTICE php will encode modified(or named keys) array into object format in json format request
+ * so the fields array must a sequence(list) type of array.
+ *
+ * @param array $fields Fields to be returned
*
- * @param array $fields Fields to be returned
- * @return \Elastica\Query Current object
- * @link http://www.elasticsearch.org/guide/reference/api/search/fields.html
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-fields.html
*/
public function setFields(array $fields)
{
@@ -259,11 +286,13 @@ class Query extends Param
}
/**
- * Set script fields
+ * Set script fields.
+ *
+ * @param array|\Elastica\ScriptFields $scriptFields 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
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html
*/
public function setScriptFields($scriptFields)
{
@@ -275,11 +304,12 @@ class Query extends Param
}
/**
- * Adds a Script to the query
+ * Adds a Script to the query.
+ *
+ * @param string $name
+ * @param \Elastica\Script $script Script object
*
- * @param string $name
- * @param \Elastica\Script $script Script object
- * @return \Elastica\Query Query object
+ * @return $this
*/
public function addScriptField($name, Script $script)
{
@@ -289,11 +319,14 @@ class Query extends Param
}
/**
- * Sets all facets for this query object. Replaces existing facets
+ * 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/
+ * @param array $facets List of facet objects
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-facets.html
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
public function setFacets(array $facets)
{
@@ -306,10 +339,13 @@ class Query extends Param
}
/**
- * Adds a Facet to the query
+ * Adds a Facet to the query.
+ *
+ * @param \Elastica\Facet\AbstractFacet $facet Facet object
+ *
+ * @return $this
*
- * @param \Elastica\Facet\AbstractFacet $facet Facet object
- * @return \Elastica\Query Query object
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
public function addFacet(AbstractFacet $facet)
{
@@ -319,10 +355,11 @@ class Query extends Param
}
/**
- * Adds an Aggregation to the query
+ * Adds an Aggregation to the query.
*
* @param AbstractAggregation $agg
- * @return \Elastica\Query Query object
+ *
+ * @return $this
*/
public function addAggregation(AbstractAggregation $agg)
{
@@ -330,11 +367,12 @@ class Query extends Param
$this->_params['aggs'] = array();
}
$this->_params['aggs'][$agg->getName()] = $agg->toArray();
+
return $this;
}
/**
- * Converts all query params to an array
+ * Converts all query params to an array.
*
* @return array Query array
*/
@@ -356,11 +394,13 @@ class Query extends Param
}
/**
- * Allows filtering of documents based on a minimum score
+ * Allows filtering of documents based on a minimum score.
+ *
+ * @param int $minScore Minimum score to filter documents by
*
- * @param int $minScore Minimum score to filter documents by
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Query Query object
+ *
+ * @return $this
*/
public function setMinScore($minScore)
{
@@ -372,49 +412,77 @@ class Query extends Param
}
/**
- * Add a suggest term
+ * Add a suggest term.
*
- * @param \Elastica\Suggest $suggest suggestion object
+ * @param \Elastica\Suggest $suggest suggestion object
+ *
+ * @return $this
*/
public function setSuggest(Suggest $suggest)
{
- $this->addParam(NULL, $suggest->toArray());
+ $this->setParams(array_merge(
+ $this->getParams(),
+ $suggest->toArray()
+ ));
+
$this->_suggest = 1;
+
+ return $this;
}
/**
- * Add a Rescore
+ * Add a Rescore.
+ *
+ * @param mixed $rescore suggestion object
*
- * @param \Elastica\Rescore\AbstractRescore $suggest suggestion object
+ * @return $this
*/
public function setRescore($rescore)
{
- $this->setParam('rescore', $rescore->toArray());
+ if (is_array($rescore)) {
+ $buffer = array();
+
+ foreach ($rescore as $rescoreQuery) {
+ $buffer [] = $rescoreQuery->toArray();
+ }
+ } else {
+ $buffer = $rescore->toArray();
+ }
+
+ return $this->setParam('rescore', $buffer);
}
/**
- * Sets the _source field to be returned with every hit
+ * 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
+ * @param array|bool $params Fields to be returned or false to disable source
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html
*/
- public function setSource(array $fields)
+ public function setSource($params)
{
- return $this->setParam('_source', $fields);
+ return $this->setParam('_source', $params);
}
/**
- * 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
+ * Sets post_filter argument for the query. The filter is applied after the query has executed.
+ *
+ * @param array|\Elastica\Filter\AbstractFilter $filter
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-post-filter.html
*/
- public function setPostFilter(array $post)
+ public function setPostFilter($filter)
{
- return $this->setParam("post_filter", $post);
+ if ($filter instanceof AbstractFilter) {
+ $filter = $filter->toArray();
+ } else {
+ trigger_error('Deprecated: Elastica\Query::setPostFilter() passing filter as array is deprecated. Pass instance of AbstractFilter instead.', E_USER_DEPRECATED);
+ }
+
+ return $this->setParam('post_filter', $filter);
}
}
-
-
-
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/AbstractQuery.php b/vendor/ruflin/elastica/lib/Elastica/Query/AbstractQuery.php
index 5b24ace4..fd1c29b0 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/AbstractQuery.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/AbstractQuery.php
@@ -1,13 +1,11 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Param;
/**
* Abstract query object. Should be extended by all query types.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
abstract class AbstractQuery extends Param
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Bool.php b/vendor/ruflin/elastica/lib/Elastica/Query/Bool.php
index 2b2c1157..c5bccc54 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Bool.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Bool.php
@@ -1,92 +1,15 @@
<?php
-
namespace Elastica\Query;
-use Elastica\Exception\InvalidException;
-use Elastica\Query\AbstractQuery;
/**
- * Bool query
+ * Bool query.
+ *
+ * This class is for backward compatibility reason for all php < 7 versions. For PHP 7 and above use BoolFilter as Bool is reserved.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
*/
-class Bool extends AbstractQuery
+class Bool extends BoolQuery
{
- /**
- * Add should part to query
- *
- * @param \Elastica\Query\AbstractQuery|array $args Should query
- * @return \Elastica\Query\Bool Current object
- */
- public function addShould($args)
- {
- return $this->_addQuery('should', $args);
- }
-
- /**
- * Add must part to query
- *
- * @param \Elastica\Query\AbstractQuery|array $args Must query
- * @return \Elastica\Query\Bool Current object
- */
- public function addMust($args)
- {
- return $this->_addQuery('must', $args);
- }
-
- /**
- * Add must not part to query
- *
- * @param \Elastica\Query\AbstractQuery|array $args Must not query
- * @return \Elastica\Query\Bool Current object
- */
- public function addMustNot($args)
- {
- return $this->_addQuery('must_not', $args);
- }
-
- /**
- * Adds a query to the current object
- *
- * @param string $type Query type
- * @param \Elastica\Query\AbstractQuery|array $args Query
- * @return \Elastica\Query\Bool
- * @throws \Elastica\Exception\InvalidException If not valid query
- */
- protected function _addQuery($type, $args)
- {
- if ($args instanceof AbstractQuery) {
- $args = $args->toArray();
- }
-
- if (!is_array($args)) {
- throw new InvalidException('Invalid parameter. Has to be array or instance of Elastica\Query\AbstractQuery');
- }
-
- return $this->addParam($type, $args);
- }
-
- /**
- * Sets boost value of this query
- *
- * @param float $boost Boost value
- * @return \Elastica\Query\Bool Current object
- */
- public function setBoost($boost)
- {
- return $this->setParam('boost', $boost);
- }
-
- /**
- * Set the minimum number of of should match
- *
- * @param int $minimumNumberShouldMatch Should match minimum
- * @return \Elastica\Query\Bool Current object
- */
- public function setMinimumNumberShouldMatch($minimumNumberShouldMatch)
- {
- return $this->setParam('minimum_number_should_match', $minimumNumberShouldMatch);
- }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/BoolQuery.php b/vendor/ruflin/elastica/lib/Elastica/Query/BoolQuery.php
new file mode 100644
index 00000000..7b8bd4da
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/BoolQuery.php
@@ -0,0 +1,111 @@
+<?php
+namespace Elastica\Query;
+
+use Elastica\Exception\InvalidException;
+
+/**
+ * Bool query.
+ *
+ * @author Nicolas Ruflin <spam@ruflin.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
+ */
+class BoolQuery extends AbstractQuery
+{
+ /**
+ * Add should part to query.
+ *
+ * @param \Elastica\Query\AbstractQuery|array $args Should query
+ *
+ * @return $this
+ */
+ public function addShould($args)
+ {
+ return $this->_addQuery('should', $args);
+ }
+
+ /**
+ * Add must part to query.
+ *
+ * @param \Elastica\Query\AbstractQuery|array $args Must query
+ *
+ * @return $this
+ */
+ public function addMust($args)
+ {
+ return $this->_addQuery('must', $args);
+ }
+
+ /**
+ * Add must not part to query.
+ *
+ * @param \Elastica\Query\AbstractQuery|array $args Must not query
+ *
+ * @return $this
+ */
+ public function addMustNot($args)
+ {
+ return $this->_addQuery('must_not', $args);
+ }
+
+ /**
+ * Adds a query to the current object.
+ *
+ * @param string $type Query type
+ * @param \Elastica\Query\AbstractQuery|array $args Query
+ *
+ * @throws \Elastica\Exception\InvalidException If not valid query
+ *
+ * @return $this
+ */
+ protected function _addQuery($type, $args)
+ {
+ if ($args instanceof AbstractQuery) {
+ $args = $args->toArray();
+ }
+
+ if (!is_array($args)) {
+ throw new InvalidException('Invalid parameter. Has to be array or instance of Elastica\Query\AbstractQuery');
+ }
+
+ return $this->addParam($type, $args);
+ }
+
+ /**
+ * Sets boost value of this query.
+ *
+ * @param float $boost Boost value
+ *
+ * @return $this
+ */
+ public function setBoost($boost)
+ {
+ return $this->setParam('boost', $boost);
+ }
+
+ /**
+ * Set the minimum number of of should match.
+ *
+ * @param int $minimumNumberShouldMatch Should match minimum
+ *
+ * @return $this
+ */
+ public function setMinimumNumberShouldMatch($minimumNumberShouldMatch)
+ {
+ return $this->setParam('minimum_number_should_match', $minimumNumberShouldMatch);
+ }
+
+ /**
+ * Converts array to an object in case no queries are added.
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ if (empty($this->_params)) {
+ $this->_params = new \stdClass();
+ }
+
+ return parent::toArray();
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Boosting.php b/vendor/ruflin/elastica/lib/Elastica/Query/Boosting.php
index fe429637..95dcde3d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Boosting.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Boosting.php
@@ -1,21 +1,23 @@
<?php
-
namespace Elastica\Query;
/**
- * Class Boosting
- * @package Elastica\Query
+ * Class Boosting.
+ *
* @author Balazs Nadasdi <yitsushi@gmail.com>
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
*/
class Boosting extends AbstractQuery
{
const NEGATIVE_BOOST = 0.2;
/**
- * Set the positive query for this Boosting Query
+ * Set the positive query for this Boosting Query.
+ *
* @param AbstractQuery $query
- * @return \Elastica\Query\Boosting
+ *
+ * @return $this
*/
public function setPositiveQuery(AbstractQuery $query)
{
@@ -23,9 +25,11 @@ class Boosting extends AbstractQuery
}
/**
- * Set the negative query for this Boosting Query
+ * Set the negative query for this Boosting Query.
+ *
* @param AbstractQuery $query
- * @return \Elastica\Query\Boosting
+ *
+ * @return $this
*/
public function setNegativeQuery(AbstractQuery $query)
{
@@ -33,12 +37,14 @@ class Boosting extends AbstractQuery
}
/**
- * Set the negative_boost parameter for this Boosting Query
+ * Set the negative_boost parameter for this Boosting Query.
+ *
* @param Float $negativeBoost
- * @return \Elastica\Query\Boosting
+ *
+ * @return $this
*/
public function setNegativeBoost($negativeBoost)
{
- return $this->setParam('negative_boost', (float)$negativeBoost);
+ return $this->setParam('negative_boost', (float) $negativeBoost);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Builder.php b/vendor/ruflin/elastica/lib/Elastica/Query/Builder.php
index 2a5e8baa..55b6b903 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Builder.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Builder.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Query;
use Elastica\Exception\InvalidException;
@@ -9,10 +8,10 @@ use Elastica\JSON;
/**
* Query Builder.
*
- * @category Xodoa
- * @package Elastica
* @author Chris Gedrim <chris@gedr.im>
- * @link http://www.elasticsearch.org/
+ *
+ * @link http://www.elastic.co/
+ * @deprecated This builder is deprecated and will be removed. Use new Elastica\QueryBuilder instead.
**/
class Builder extends AbstractQuery
{
@@ -28,21 +27,21 @@ class Builder extends AbstractQuery
*
* @param string $string JSON encoded string to use as query.
*
- * @return \Elastica\Query\Builder
+ * @return self
*/
public static function factory($string = null)
{
- return new Builder($string);
+ return new self($string);
}
/**
- * Constructor
+ * Constructor.
*
* @param string $string JSON encoded string to use as query.
*/
public function __construct($string = null)
{
- if (! $string == null) {
+ if (!$string == null) {
$this->_string .= substr($string, 1, -1);
}
}
@@ -63,18 +62,21 @@ class Builder extends AbstractQuery
public function toArray()
{
try {
- return JSON::parse($this->__toString());
+ return JSON::parse($input = $this->__toString());
} catch (JSONParseException $e) {
- throw new InvalidException('The query produced is invalid');
+ throw new InvalidException(sprintf(
+ 'The produced query is not a valid json string : "%s"',
+ $input
+ ));
}
}
/**
* Allow wildcards (*, ?) as the first character in a query.
*
- * @param boolean $bool Defaults to true.
+ * @param bool $bool Defaults to true.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function allowLeadingWildcard($bool = true)
{
@@ -84,9 +86,9 @@ class Builder extends AbstractQuery
/**
* Enable best effort analysis of wildcard terms.
*
- * @param boolean $bool Defaults to true.
+ * @param bool $bool Defaults to true.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function analyzeWildcard($bool = true)
{
@@ -98,7 +100,7 @@ class Builder extends AbstractQuery
*
* @param string $analyzer Analyzer to use.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function analyzer($analyzer)
{
@@ -108,9 +110,9 @@ class Builder extends AbstractQuery
/**
* Autogenerate phrase queries.
*
- * @param boolean $bool Defaults to true.
+ * @param bool $bool Defaults to true.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function autoGeneratePhraseQueries($bool = true)
{
@@ -129,7 +131,7 @@ class Builder extends AbstractQuery
*
* The occurrence types are: must, should, must_not.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function bool()
{
@@ -141,7 +143,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function boolClose()
{
@@ -153,7 +155,7 @@ class Builder extends AbstractQuery
*
* @param float $boost Defaults to 1.0.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function boost($boost = 1.0)
{
@@ -163,7 +165,7 @@ class Builder extends AbstractQuery
/**
* Close a previously opened brace.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function close()
{
@@ -180,7 +182,7 @@ class Builder extends AbstractQuery
*
* Maps to Lucene ConstantScoreQuery.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function constantScore()
{
@@ -192,7 +194,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function constantScoreClose()
{
@@ -204,7 +206,7 @@ class Builder extends AbstractQuery
*
* @param string $field Defaults to _all.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function defaultField($field = '_all')
{
@@ -220,7 +222,7 @@ class Builder extends AbstractQuery
*
* @param string $operator Defaults to OR.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function defaultOperator($operator = 'OR')
{
@@ -235,7 +237,7 @@ class Builder extends AbstractQuery
* produced by any subquery, plus a tie breaking increment for any additional
* matching subqueries.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function disMax()
{
@@ -247,7 +249,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function disMaxClose()
{
@@ -257,9 +259,9 @@ class Builder extends AbstractQuery
/**
* Enable position increments in result queries.
*
- * @param boolean $bool Defaults to true.
+ * @param bool $bool Defaults to true.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function enablePositionIncrements($bool = true)
{
@@ -269,9 +271,9 @@ class Builder extends AbstractQuery
/**
* Enables explanation for each hit on how its score was computed.
*
- * @param boolean $value Turn on / off explain.
+ * @param bool $value Turn on / off explain.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function explain($value = true)
{
@@ -289,7 +291,7 @@ class Builder extends AbstractQuery
* Elasticsearch supports more advanced facet implementations, such as
* statistical or date histogram facets.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function facets()
{
@@ -301,7 +303,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function facetsClose()
{
@@ -314,12 +316,12 @@ class Builder extends AbstractQuery
* @param string $name Field to add.
* @param mixed $value Value to set.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function field($name, $value)
{
if (is_bool($value)) {
- $value = '"'. var_export($value, true) . '"';
+ $value = '"'.var_export($value, true).'"';
} elseif (is_array($value)) {
$value = '["'.implode('","', $value).'"]';
} else {
@@ -348,7 +350,7 @@ class Builder extends AbstractQuery
* ->rangeClose()
* ->queryClose();
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function fieldClose()
{
@@ -360,7 +362,7 @@ class Builder extends AbstractQuery
*
* @param string $name Field name.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function fieldOpen($name)
{
@@ -375,7 +377,7 @@ class Builder extends AbstractQuery
*
* @param array $fields Array of fields to return.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function fields(array $fields)
{
@@ -393,7 +395,7 @@ class Builder extends AbstractQuery
/**
* Open a 'filter' block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function filter()
{
@@ -403,7 +405,7 @@ class Builder extends AbstractQuery
/**
* Close a filter block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function filterClose()
{
@@ -413,7 +415,7 @@ class Builder extends AbstractQuery
/**
* Query.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function filteredQuery()
{
@@ -425,7 +427,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function filteredQueryClose()
{
@@ -435,9 +437,9 @@ class Builder extends AbstractQuery
/**
* Set the from parameter (offset).
*
- * @param integer $value Result number to start from.
+ * @param int $value Result number to start from.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function from($value = 0)
{
@@ -449,7 +451,7 @@ class Builder extends AbstractQuery
*
* @param float $value Defaults to 0.5.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function fuzzyMinSim($value = 0.5)
{
@@ -459,9 +461,9 @@ class Builder extends AbstractQuery
/**
* Set the prefix length for fuzzy queries.
*
- * @param integer $value Defaults to 0.
+ * @param int $value Defaults to 0.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function fuzzyPrefixLength($value = 0)
{
@@ -475,7 +477,7 @@ class Builder extends AbstractQuery
*
* @param mixed $value Value to be gt.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function gt($value)
{
@@ -489,7 +491,7 @@ class Builder extends AbstractQuery
*
* @param mixed $value Value to be gte to.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function gte($value)
{
@@ -499,9 +501,9 @@ class Builder extends AbstractQuery
/**
* Automatically lower-case terms of wildcard, prefix, fuzzy, and range queries.
*
- * @param boolean $bool Defaults to true.
+ * @param bool $bool Defaults to true.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function lowercaseExpandedTerms($bool = true)
{
@@ -515,7 +517,7 @@ class Builder extends AbstractQuery
*
* @param mixed $value Value to be lt.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function lt($value)
{
@@ -529,7 +531,7 @@ class Builder extends AbstractQuery
*
* @param mixed $value Value to be lte to.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function lte($value)
{
@@ -545,13 +547,13 @@ class Builder extends AbstractQuery
*
* @param float $boost Boost to use.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function matchAll($boost = null)
{
$this->fieldOpen('match_all');
- if ( ! $boost == null && is_numeric($boost)) {
+ if (!$boost == null && is_numeric($boost)) {
$this->field('boost', (float) $boost);
}
@@ -561,9 +563,9 @@ class Builder extends AbstractQuery
/**
* The minimum number of should clauses to match.
*
- * @param integer $minimum Minimum number that should match.
+ * @param int $minimum Minimum number that should match.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function minimumNumberShouldMatch($minimum)
{
@@ -573,7 +575,7 @@ class Builder extends AbstractQuery
/**
* The clause (query) must appear in matching documents.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function must()
{
@@ -585,7 +587,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function mustClose()
{
@@ -598,7 +600,7 @@ class Builder extends AbstractQuery
* Note that it is not possible to search on documents that only consists of
* a must_not clauses.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function mustNot()
{
@@ -610,7 +612,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function mustNotClose()
{
@@ -620,7 +622,7 @@ class Builder extends AbstractQuery
/**
* Add an opening brace.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function open()
{
@@ -634,9 +636,9 @@ class Builder extends AbstractQuery
*
* If zero, then exact phrase matches are required.
*
- * @param integer $value Defaults to 0.
+ * @param int $value Defaults to 0.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function phraseSlop($value = 0)
{
@@ -646,7 +648,7 @@ class Builder extends AbstractQuery
/**
* Query.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function prefix()
{
@@ -658,7 +660,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function prefixClose()
{
@@ -670,7 +672,7 @@ class Builder extends AbstractQuery
*
* @param array $queries Array of queries.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function queries(array $queries)
{
@@ -688,7 +690,7 @@ class Builder extends AbstractQuery
/**
* Open a query block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function query()
{
@@ -700,7 +702,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function queryClose()
{
@@ -712,7 +714,7 @@ class Builder extends AbstractQuery
*
* A query that uses a query parser in order to parse its content
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function queryString()
{
@@ -724,7 +726,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function queryStringClose()
{
@@ -734,7 +736,7 @@ class Builder extends AbstractQuery
/**
* Open a range block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function range()
{
@@ -746,7 +748,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function rangeClose()
{
@@ -759,7 +761,7 @@ class Builder extends AbstractQuery
* A boolean query with no must clauses, one or more should clauses must
* match a document.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function should()
{
@@ -771,7 +773,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function shouldClose()
{
@@ -781,9 +783,9 @@ class Builder extends AbstractQuery
/**
* Set the size parameter (number of records to return).
*
- * @param integer $value Number of records to return.
+ * @param int $value Number of records to return.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function size($value = 10)
{
@@ -793,7 +795,7 @@ class Builder extends AbstractQuery
/**
* Allows to add one or more sort on specific fields.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function sort()
{
@@ -805,7 +807,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function sortClose()
{
@@ -815,10 +817,10 @@ class Builder extends AbstractQuery
/**
* Add a field to sort on.
*
- * @param string $name Field to sort.
- * @param boolean $reverse Reverse direction.
+ * @param string $name Field to sort.
+ * @param bool $reverse Reverse direction.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function sortField($name, $reverse = false)
{
@@ -831,12 +833,12 @@ class Builder extends AbstractQuery
}
/**
- * Sort on multiple fields
+ * Sort on multiple fields.
*
* @param array $fields Associative array where the keys are field names to sort on, and the
* values are the sort order: "asc" or "desc"
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function sortFields(array $fields)
{
@@ -846,7 +848,7 @@ class Builder extends AbstractQuery
$this->_string .= '{"'.$fieldName.'":"'.$order.'"},';
}
- $this->_string = rtrim($this->_string, ',') . '],';
+ $this->_string = rtrim($this->_string, ',').'],';
return $this;
}
@@ -858,7 +860,7 @@ class Builder extends AbstractQuery
*
* The term query maps to Lucene TermQuery.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function term()
{
@@ -870,7 +872,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function termClose()
{
@@ -880,7 +882,7 @@ class Builder extends AbstractQuery
/**
* Open a 'text_phrase' block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function textPhrase()
{
@@ -890,7 +892,7 @@ class Builder extends AbstractQuery
/**
* Close a 'text_phrase' block.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function textPhraseClose()
{
@@ -902,7 +904,7 @@ class Builder extends AbstractQuery
*
* @param float $multiplier Multiplier to use.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function tieBreakerMultiplier($multiplier)
{
@@ -912,7 +914,7 @@ class Builder extends AbstractQuery
/**
* Query.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function wildcard()
{
@@ -924,7 +926,7 @@ class Builder extends AbstractQuery
*
* Alias of close() for ease of reading in source.
*
- * @return \Elastica\Query\Builder
+ * @return $this
*/
public function wildcardClose()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Common.php b/vendor/ruflin/elastica/lib/Elastica/Query/Common.php
index 6e112769..9ca58d2e 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Common.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Common.php
@@ -1,12 +1,10 @@
<?php
-
namespace Elastica\Query;
-
/**
- * Class Common
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/common-terms-query/
+ * Class Common.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-common-terms-query.html
*/
class Common extends AbstractQuery
{
@@ -24,9 +22,9 @@ class Common extends AbstractQuery
protected $_queryParams = array();
/**
- * @param string $field the field on which to query
- * @param string $query the query string
- * @param float $cutoffFrequency percentage in decimal form (.001 == 0.1%)
+ * @param string $field the field on which to query
+ * @param string $query the query string
+ * @param float $cutoffFrequency percentage in decimal form (.001 == 0.1%)
*/
public function __construct($field, $query, $cutoffFrequency)
{
@@ -36,20 +34,25 @@ class Common extends AbstractQuery
}
/**
- * Set the field on which to query
+ * Set the field on which to query.
+ *
* @param string $field the field on which to query
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setField($field)
{
$this->_field = $field;
+
return $this;
}
/**
- * Set the query string for this query
+ * Set the query string for this query.
+ *
* @param string $query
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -57,19 +60,23 @@ class Common extends AbstractQuery
}
/**
- * Set the frequency below which terms will be put in the low frequency group
+ * Set the frequency below which terms will be put in the low frequency group.
+ *
* @param float $frequency percentage in decimal form (.001 == 0.1%)
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setCutoffFrequency($frequency)
{
- return $this->setQueryParam('cutoff_frequency', (float)$frequency);
+ return $this->setQueryParam('cutoff_frequency', (float) $frequency);
}
/**
- * Set the logic operator for low frequency terms
+ * Set the logic operator for low frequency terms.
+ *
* @param string $operator see OPERATOR_* class constants for options
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setLowFrequencyOperator($operator)
{
@@ -77,9 +84,11 @@ class Common extends AbstractQuery
}
/**
- * Set the logic operator for high frequency terms
+ * Set the logic operator for high frequency terms.
+ *
* @param string $operator see OPERATOR_* class constants for options
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setHighFrequencyOperator($operator)
{
@@ -87,10 +96,13 @@ class Common extends AbstractQuery
}
/**
- * Set the minimum_should_match parameter
+ * Set the minimum_should_match parameter.
+ *
* @param int|string $minimum minimum number of low frequency terms which must be present
- * @return \Elastica\Query\Common
- * @link Possible values for minimum_should_match http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
+ *
+ * @return $this
+ *
+ * @link Possible values for minimum_should_match http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
*/
public function setMinimumShouldMatch($minimum)
{
@@ -98,19 +110,23 @@ class Common extends AbstractQuery
}
/**
- * Set the boost for this query
+ * Set the boost for this query.
+ *
* @param float $boost
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setBoost($boost)
{
- return $this->setQueryParam('boost', (float)$boost);
+ return $this->setQueryParam('boost', (float) $boost);
}
/**
- * Set the analyzer for this query
+ * Set the analyzer for this query.
+ *
* @param string $analyzer
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
@@ -118,24 +134,29 @@ class Common extends AbstractQuery
}
/**
- * Enable / disable computation of score factor based on the fraction of all query terms contained in the document
+ * Enable / disable computation of score factor based on the fraction of all query terms contained in the document.
+ *
* @param bool $disable disable_coord is false by default
- * @return \Elastica\Query\Common
+ *
+ * @return $this
*/
public function setDisableCoord($disable = true)
{
- return $this->setQueryParam('disable_coord', (bool)$disable);
+ return $this->setQueryParam('disable_coord', (bool) $disable);
}
/**
- * Set a parameter in the body of this query
- * @param string $key parameter key
- * @param mixed $value parameter value
- * @return \Elastica\Query\Common
+ * Set a parameter in the body of this query.
+ *
+ * @param string $key parameter key
+ * @param mixed $value parameter value
+ *
+ * @return $this
*/
public function setQueryParam($key, $value)
{
$this->_queryParams[$key] = $value;
+
return $this;
}
@@ -145,6 +166,7 @@ class Common extends AbstractQuery
public function toArray()
{
$this->setParam($this->_field, $this->_queryParams);
+
return parent::toArray();
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/ConstantScore.php b/vendor/ruflin/elastica/lib/Elastica/Query/ConstantScore.php
index 16854600..3578606d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/ConstantScore.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/ConstantScore.php
@@ -1,20 +1,19 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Filter\AbstractFilter;
/**
- * Constant score query
+ * Constant score query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/constant-score-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-constant-score-query.html
*/
class ConstantScore extends AbstractQuery
{
/**
- * Construct constant score query
+ * Construct constant score query.
*
* @param null|\Elastica\Filter\AbstractFilter|array $filter
*/
@@ -26,10 +25,11 @@ class ConstantScore extends AbstractQuery
}
/**
- * Set filter
+ * Set filter.
*
- * @param array|\Elastica\Filter\AbstractFilter $filter
- * @return \Elastica\Query\ConstantScore Query object
+ * @param array|\Elastica\Filter\AbstractFilter $filter
+ *
+ * @return $this
*/
public function setFilter($filter)
{
@@ -41,10 +41,11 @@ class ConstantScore extends AbstractQuery
}
/**
- * Set query
+ * Set query.
*
* @param array|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Query\ConstantScore Query object
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -56,10 +57,11 @@ class ConstantScore extends AbstractQuery
}
/**
- * Set boost
+ * Set boost.
+ *
+ * @param float $boost
*
- * @param float $boost
- * @return \Elastica\Query\ConstantScore
+ * @return $this
*/
public function setBoost($boost)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/DisMax.php b/vendor/ruflin/elastica/lib/Elastica/Query/DisMax.php
index 4b1d320d..b3c5f252 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/DisMax.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/DisMax.php
@@ -1,24 +1,25 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Exception\InvalidException;
/**
- * DisMax query
+ * DisMax query.
*
- * @category Xodoa
- * @package Elastica
* @author Hung Tran <oohnoitz@gmail.com>
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html
*/
class DisMax extends AbstractQuery
{
/**
- * Adds a query to the current object
+ * Adds a query to the current object.
+ *
+ * @param \Elastica\Query\AbstractQuery|array $args Query
*
- * @param \Elastica\Query\AbstractQuery|array $args Query
- * @return \Elastica\Query\DisMax
* @throws \Elastica\Exception\InvalidException If not valid query
+ *
+ * @return $this
*/
public function addQuery($args)
{
@@ -34,10 +35,11 @@ class DisMax extends AbstractQuery
}
/**
- * Set boost
+ * Set boost.
+ *
+ * @param float $boost
*
- * @param float $boost
- * @return \Elastica\Query\DisMax
+ * @return $this
*/
public function setBoost($boost)
{
@@ -49,8 +51,9 @@ class DisMax extends AbstractQuery
*
* If not set, defaults to 0.0
*
- * @param float $tieBreaker
- * @return \Elastica\Query\DisMax
+ * @param float $tieBreaker
+ *
+ * @return $this
*/
public function setTieBreaker($tieBreaker = 0.0)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Filtered.php b/vendor/ruflin/elastica/lib/Elastica/Query/Filtered.php
index c28d4cdd..ac085037 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Filtered.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Filtered.php
@@ -1,36 +1,36 @@
<?php
-
namespace Elastica\Query;
-use Elastica\Filter\AbstractFilter;
use Elastica\Exception\InvalidException;
+use Elastica\Filter\AbstractFilter;
/**
- * Filtered query. Needs a query and a filter
+ * Filtered query. Needs a query and a filter.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/filtered-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html
*/
class Filtered extends AbstractQuery
{
/**
- * Constructs a filtered query
+ * Constructs a filtered query.
*
* @param \Elastica\Query\AbstractQuery $query OPTIONAL Query object
* @param \Elastica\Filter\AbstractFilter $filter OPTIONAL Filter object
*/
- public function __construct(AbstractQuery $query = null, AbstractFilter $filter = null) {
+ public function __construct(AbstractQuery $query = null, AbstractFilter $filter = null)
+ {
$this->setQuery($query);
$this->setFilter($filter);
}
/**
- * Sets a query
+ * Sets a query.
*
- * @param \Elastica\Query\AbstractQuery $query Query object
- * @return \Elastica\Query\Filtered Current object
+ * @param \Elastica\Query\AbstractQuery $query Query object
+ *
+ * @return $this
*/
public function setQuery(AbstractQuery $query = null)
{
@@ -38,10 +38,11 @@ class Filtered extends AbstractQuery
}
/**
- * Sets the filter
+ * Sets the filter.
+ *
+ * @param \Elastica\Filter\AbstractFilter $filter Filter object
*
- * @param \Elastica\Filter\AbstractFilter $filter Filter object
- * @return \Elastica\Query\Filtered Current object
+ * @return $this
*/
public function setFilter(AbstractFilter $filter = null)
{
@@ -69,9 +70,10 @@ class Filtered extends AbstractQuery
}
/**
- * Converts query to array
+ * Converts query to array.
*
* @return array Query array
+ *
* @see \Elastica\Query\AbstractQuery::toArray()
*/
public function toArray()
@@ -89,7 +91,7 @@ class Filtered extends AbstractQuery
if (empty($filtered)) {
throw new InvalidException('A query and/or filter is required');
}
-
+
return array('filtered' => $filtered);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/FunctionScore.php b/vendor/ruflin/elastica/lib/Elastica/Query/FunctionScore.php
index 8230c86e..b11454fb 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/FunctionScore.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/FunctionScore.php
@@ -1,13 +1,13 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Filter\AbstractFilter;
use Elastica\Script;
/**
- * Class FunctionScore
- * @package Elastica\Query
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/function-score-query/
+ * Class FunctionScore.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
*/
class FunctionScore extends AbstractQuery
{
@@ -32,9 +32,11 @@ class FunctionScore extends AbstractQuery
protected $_functions = array();
/**
- * Set the child query for this function_score query
+ * Set the child query for this function_score query.
+ *
* @param AbstractQuery $query
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
public function setQuery(AbstractQuery $query)
{
@@ -43,7 +45,8 @@ class FunctionScore extends AbstractQuery
/**
* @param AbstractFilter $filter
- * @return \Elastica\Param
+ *
+ * @return $this
*/
public function setFilter(AbstractFilter $filter)
{
@@ -51,113 +54,151 @@ class FunctionScore extends AbstractQuery
}
/**
- * Add a function to the function_score query
- * @param string $functionType valid values are DECAY_* constants and script_score
- * @param array|float $functionParams the body of the function. See documentation for proper syntax.
- * @param AbstractFilter $filter optional filter to apply to the function
- * @return \Elastica\Query\FunctionScore
+ * Add a function to the function_score query.
+ *
+ * @param string $functionType valid values are DECAY_* constants and script_score
+ * @param array|float $functionParams the body of the function. See documentation for proper syntax.
+ * @param AbstractFilter $filter optional filter to apply to the function
+ * @param float $weight function weight
+ *
+ * @return $this
*/
- public function addFunction($functionType, $functionParams, AbstractFilter $filter = NULL)
+ public function addFunction($functionType, $functionParams, AbstractFilter $filter = null, $weight = null)
{
$function = array(
- $functionType => $functionParams
+ $functionType => $functionParams,
);
if (!is_null($filter)) {
$function['filter'] = $filter->toArray();
}
+ if ($weight !== null) {
+ $function['weight'] = $weight;
+ }
+
$this->_functions[] = $function;
+
return $this;
}
/**
- * Add a script_score function to the query
- * @param Script $script a Script object
+ * Add a script_score function to the query.
+ *
+ * @param Script $script a Script object
* @param AbstractFilter $filter an optional filter to apply to the function
- * @return \Elastica\Query\FunctionScore
+ * @param float $weight the weight of the function
+ *
+ * @return $this
*/
- public function addScriptScoreFunction(Script $script, AbstractFilter $filter = NULL)
+ public function addScriptScoreFunction(Script $script, AbstractFilter $filter = null, $weight = null)
{
- return $this->addFunction('script_score', $script->toArray(), $filter);
+ return $this->addFunction('script_score', $script->toArray(), $filter, $weight);
}
/**
- * Add a decay function to the query
- * @param string $function see DECAY_* constants for valid options
- * @param string $field the document field on which to perform the decay function
- * @param string $origin the origin value for this decay function
- * @param string $scale a scale to define the rate of decay for this function
- * @param string $offset If defined, this function will only be computed for documents with a distance from the origin greater than this value
- * @param float $decay optionally defines how documents are scored at the distance given by the $scale parameter
- * @param float $scaleWeight optional factor by which to multiply the score at the value provided by the $scale parameter
- * @param AbstractFilter $filter a filter associated with this function
- * @return \Elastica\Query\FunctionScore
+ * Add a decay function to the query.
+ *
+ * @param string $function see DECAY_* constants for valid options
+ * @param string $field the document field on which to perform the decay function
+ * @param string $origin the origin value for this decay function
+ * @param string $scale a scale to define the rate of decay for this function
+ * @param string $offset If defined, this function will only be computed for documents with a distance from the origin greater than this value
+ * @param float $decay optionally defines how documents are scored at the distance given by the $scale parameter
+ * @param float $scaleWeight optional factor by which to multiply the score at the value provided by the $scale parameter
+ * @param float $weight optional factor by which to multiply the score at the value provided by the $scale parameter
+ * @param AbstractFilter $filter a filter associated with this function
+ *
+ * @return $this
*/
- public function addDecayFunction($function, $field, $origin, $scale, $offset = NULL, $decay = NULL, $scaleWeight = NULL,
- AbstractFilter $filter = NULL)
- {
+ public function addDecayFunction(
+ $function,
+ $field,
+ $origin,
+ $scale,
+ $offset = null,
+ $decay = null,
+ $weight = null,
+ AbstractFilter $filter = null
+ ) {
$functionParams = array(
$field => array(
'origin' => $origin,
- 'scale' => $scale
- )
+ 'scale' => $scale,
+ ),
);
if (!is_null($offset)) {
$functionParams[$field]['offset'] = $offset;
}
if (!is_null($decay)) {
- $functionParams[$field]['decay'] = (float)$decay;
- }
- if (!is_null($scaleWeight)) {
- $functionParams[$field]['scale_weight'] = (float)$scaleWeight;
+ $functionParams[$field]['decay'] = (float) $decay;
}
- return $this->addFunction($function, $functionParams, $filter);
+
+ return $this->addFunction($function, $functionParams, $filter, $weight);
}
/**
- * Add a boost_factor function to the query
- * @param float $boostFactor the boost factor value
+ * Add a boost_factor function to the query.
+ *
+ * @param float $boostFactor the boost factor value
+ * @param AbstractFilter $filter a filter associated with this function
+ *
+ * @deprecated
+ */
+ public function addBoostFactorFunction($boostFactor, AbstractFilter $filter = null)
+ {
+ $this->addWeightFunction($boostFactor, $filter);
+ }
+
+ /**
+ * @param float $weight the weight of the function
* @param AbstractFilter $filter a filter associated with this function
*/
- public function addBoostFactorFunction($boostFactor, AbstractFilter $filter = NULL)
+ public function addWeightFunction($weight, AbstractFilter $filter = null)
{
- $this->addFunction('boost_factor', $boostFactor, $filter);
+ $this->addFunction('weight', $weight, $filter);
}
/**
- * Add a random_score function to the query
- * @param number $seed the seed value
+ * Add a random_score function to the query.
+ *
+ * @param number $seed the seed value
* @param AbstractFilter $filter a filter associated with this function
- * @param float $boost an optional boost value associated with this function
+ * @param float $weight an optional boost value associated with this function
*/
- public function addRandomScoreFunction($seed, AbstractFilter $filter = NULL, $boost = NULL)
+ public function addRandomScoreFunction($seed, AbstractFilter $filter = null, $weight = null)
{
- $this->addFunction('random_score', array('seed' => $seed), $filter, $boost);
+ $this->addFunction('random_score', array('seed' => $seed), $filter, $weight);
}
/**
- * Set an overall boost value for this query
+ * Set an overall boost value for this query.
+ *
* @param float $boost
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
public function setBoost($boost)
{
- return $this->setParam('boost', (float)$boost);
+ return $this->setParam('boost', (float) $boost);
}
/**
- * Restrict the combined boost of the function_score query and its child query
+ * Restrict the combined boost of the function_score query and its child query.
+ *
* @param float $maxBoost
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
public function setMaxBoost($maxBoost)
{
- return $this->setParam('max_boost', (float)$maxBoost);
+ return $this->setParam('max_boost', (float) $maxBoost);
}
/**
- * The boost mode determines how the score of this query is combined with that of the child query
+ * The boost mode determines how the score of this query is combined with that of the child query.
+ *
* @param string $mode see BOOST_MODE_* constants for valid options. Default is multiply.
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
public function setBoostMode($mode)
{
@@ -166,22 +207,27 @@ class FunctionScore extends AbstractQuery
/**
* If set, this query will return results in random order.
+ *
* @param int $seed Set a seed value to return results in the same random order for consistent pagination.
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
- public function setRandomScore($seed = NULL)
+ public function setRandomScore($seed = null)
{
$seedParam = new \stdClass();
if (!is_null($seed)) {
$seedParam->seed = $seed;
}
+
return $this->setParam('random_score', $seedParam);
}
/**
- * Set the score method
+ * Set the score method.
+ *
* @param string $mode see SCORE_MODE_* constants for valid options. Default is multiply.
- * @return \Elastica\Query\FunctionScore
+ *
+ * @return $this
*/
public function setScoreMode($mode)
{
@@ -189,6 +235,18 @@ class FunctionScore extends AbstractQuery
}
/**
+ * Set min_score option.
+ *
+ * @param float $minScore
+ *
+ * @return $this
+ */
+ public function setMinScore($minScore)
+ {
+ return $this->setParam('min_score', (float) $minScore);
+ }
+
+ /**
* @return array
*/
public function toArray()
@@ -196,6 +254,7 @@ class FunctionScore extends AbstractQuery
if (sizeof($this->_functions)) {
$this->setParam('functions', $this->_functions);
}
+
return parent::toArray();
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Fuzzy.php b/vendor/ruflin/elastica/lib/Elastica/Query/Fuzzy.php
index 73b0f1a1..a3a46693 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Fuzzy.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Fuzzy.php
@@ -1,27 +1,24 @@
<?php
-
namespace Elastica\Query;
use Elastica\Exception\InvalidException;
/**
- * Fuzzy query
+ * Fuzzy query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/fuzzy-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html
*/
class Fuzzy extends AbstractQuery
{
/**
- * Construct a fuzzy query
+ * Construct a fuzzy query.
*
- * @param string $fieldName Field name
- * @param string $value String to search for
- * @return \Elastica\Query\Fuzzy Current object
+ * @param string $fieldName Field name
+ * @param string $value String to search for
*/
- public function __construct ($fieldName = null, $value = null)
+ public function __construct($fieldName = null, $value = null)
{
if ($fieldName and $value) {
$this->setField($fieldName, $value);
@@ -29,13 +26,14 @@ class Fuzzy extends AbstractQuery
}
/**
- * Set field for fuzzy query
+ * Set field for fuzzy query.
*
- * @param string $fieldName Field name
- * @param string $value String to search for
- * @return \Elastica\Query\Fuzzy Current object
+ * @param string $fieldName Field name
+ * @param string $value String to search for
+ *
+ * @return $this
*/
- public function setField ($fieldName, $value)
+ public function setField($fieldName, $value)
{
if (!is_string($value) or !is_string($fieldName)) {
throw new InvalidException('The field and value arguments must be of type string.');
@@ -43,30 +41,34 @@ class Fuzzy extends AbstractQuery
if (count($this->getParams()) > 0 and array_shift(array_keys($this->getParams())) != $fieldName) {
throw new InvalidException('Fuzzy query can only support a single field.');
}
+
return $this->setParam($fieldName, array('value' => $value));
}
/**
- * Set optional parameters on the existing query
+ * Set optional parameters on the existing query.
*
- * @param string $param option name
- * @param mixed $value Value of the parameter
- * @return \Elastica\Query\Fuzzy Current object
+ * @param string $param option name
+ * @param mixed $value Value of the parameter
+ *
+ * @return $this
*/
- public function setFieldOption ($param, $value) {
+ public function setFieldOption($param, $value)
+ {
//Retrieve the single existing field for alteration.
$params = $this->getParams();
if (count($params) < 1) {
- throw new InvalidException('No field has been set');
+ throw new InvalidException('No field has been set');
}
$keyArray = array_keys($params);
$params[$keyArray[0]][$param] = $value;
- return $this->setparam($keyArray[0], $params[$keyArray[0]]);
+ return $this->setParam($keyArray[0], $params[$keyArray[0]]);
}
/**
* Deprecated method of setting a field.
+ *
* @deprecated
*/
public function addField($fieldName, $args)
@@ -79,6 +81,7 @@ class Fuzzy extends AbstractQuery
foreach ($args as $param => $value) {
$this->setFieldOption($param, $value);
}
+
return $this;
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/FuzzyLikeThis.php b/vendor/ruflin/elastica/lib/Elastica/Query/FuzzyLikeThis.php
index ffa34a81..2de480a8 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/FuzzyLikeThis.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/FuzzyLikeThis.php
@@ -1,79 +1,77 @@
<?php
-
namespace Elastica\Query;
/**
- * Fuzzy Like This query
+ * Fuzzy Like This query.
*
- * @category Xodoa
- * @package Elastica
* @author Raul Martinez, Jr <juneym@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/flt-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-flt-query.html
*/
class FuzzyLikeThis extends AbstractQuery
{
/**
- * Field names
+ * Field names.
*
* @var array Field names
*/
protected $_fields = array();
/**
- * Like text
+ * Like text.
*
* @var string Like text
*/
- protected $_likeText = '';
+ protected $_likeText = '';
/**
- * Ignore term frequency
+ * Ignore term frequency.
*
- * @var boolean ignore term frequency
+ * @var bool ignore term frequency
*/
protected $_ignoreTF = false;
/**
- * Max query terms value
+ * Max query terms value.
*
* @var int Max query terms value
*/
protected $_maxQueryTerms = 25;
/**
- * minimum similarity
+ * minimum similarity.
*
* @var int minimum similarity
*/
protected $_minSimilarity = 0.5;
/**
- * Prefix Length
+ * Prefix Length.
*
* @var int Prefix Length
*/
protected $_prefixLength = 0;
/**
- * Boost
+ * Boost.
*
* @var float Boost
*/
protected $_boost = 1.0;
/**
- * Analyzer
+ * Analyzer.
*
* @var sting Analyzer
*/
protected $_analyzer;
-
/**
- * Adds field to flt query
+ * Adds field to flt query.
+ *
+ * @param array $fields Field names
*
- * @param array $fields Field names
- * @return \Elastica\Query\FuzzyLikeThis Current object
+ * @return $this
*/
public function addFields(array $fields)
{
@@ -83,10 +81,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set the "like_text" value
+ * Set the "like_text" value.
*
- * @param string $text
- * @return \Elastica\Query\FuzzyLikeThis This current object
+ * @param string $text
+ *
+ * @return $this
*/
public function setLikeText($text)
{
@@ -97,10 +96,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set the "ignore_tf" value (ignore term frequency)
+ * Set the "ignore_tf" value (ignore term frequency).
+ *
+ * @param bool $ignoreTF
*
- * @param bool $ignoreTF
- * @return \Elastica\Query\FuzzyLikeThis Current object
+ * @return $this
*/
public function setIgnoreTF($ignoreTF)
{
@@ -110,10 +110,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set the minimum similarity
+ * Set the minimum similarity.
*
- * @param int $value
- * @return \Elastica\Query\FuzzyLikeThis This current object
+ * @param int $value
+ *
+ * @return $this
*/
public function setMinSimilarity($value)
{
@@ -124,10 +125,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set boost
+ * Set boost.
+ *
+ * @param float $value Boost value
*
- * @param float $value Boost value
- * @return \Elastica\Query\FuzzyLikeThis Query object
+ * @return $this
*/
public function setBoost($value)
{
@@ -137,10 +139,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set Prefix Length
+ * Set Prefix Length.
*
- * @param int $value Prefix length
- * @return \Elastica\Query\FuzzyLikeThis
+ * @param int $value Prefix length
+ *
+ * @return $this
*/
public function setPrefixLength($value)
{
@@ -150,10 +153,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set max_query_terms
+ * Set max_query_terms.
+ *
+ * @param int $value Max query terms value
*
- * @param int $value Max query terms value
- * @return \Elastica\Query\FuzzyLikeThis
+ * @return $this
*/
public function setMaxQueryTerms($value)
{
@@ -163,10 +167,11 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Set analyzer
+ * Set analyzer.
*
- * @param string $text Analyzer text
- * @return \Elastica\Query\FuzzyLikeThis
+ * @param string $text Analyzer text
+ *
+ * @return $this
*/
public function setAnalyzer($text)
{
@@ -177,9 +182,10 @@ class FuzzyLikeThis extends AbstractQuery
}
/**
- * Converts fuzzy like this query to array
+ * Converts fuzzy like this query to array.
*
* @return array Query array
+ *
* @see \Elastica\Query\AbstractQuery::toArray()
*/
public function toArray()
@@ -192,18 +198,14 @@ class FuzzyLikeThis extends AbstractQuery
$args['boost'] = $this->_boost;
}
- if (!empty($this->_likeText)) {
- $args['like_text'] = $this->_likeText;
- }
-
if (!empty($this->_analyzer)) {
$args['analyzer'] = $this->_analyzer;
}
-
$args['min_similarity'] = ($this->_minSimilarity > 0) ? $this->_minSimilarity : 0;
- $args['prefix_length'] = $this->_prefixLength;
+ $args['like_text'] = $this->_likeText;
+ $args['prefix_length'] = $this->_prefixLength;
$args['ignore_tf'] = $this->_ignoreTF;
$args['max_query_terms'] = $this->_maxQueryTerms;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/HasChild.php b/vendor/ruflin/elastica/lib/Elastica/Query/HasChild.php
index e849a9bf..190fa592 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/HasChild.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/HasChild.php
@@ -1,23 +1,22 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Query as BaseQuery;
/**
- * Returns parent documents having child docs matching the query
+ * Returns parent documents having child docs matching the query.
*
- * @category Xodoa
- * @package Elastica
* @author Fabian Vogler <fabian@equivalence.ch>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/has-child-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-child-query.html
*/
class HasChild extends AbstractQuery
{
/**
- * Construct HasChild Query
+ * Construct HasChild Query.
*
* @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @param string $type Parent document type
+ * @param string $type Parent document type
*/
public function __construct($query, $type = null)
{
@@ -26,10 +25,11 @@ class HasChild extends AbstractQuery
}
/**
- * Sets query object
+ * Sets query object.
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Query\HasChild
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -40,10 +40,11 @@ class HasChild extends AbstractQuery
}
/**
- * Set type of the parent document
+ * Set type of the parent document.
+ *
+ * @param string $type Parent document type
*
- * @param string $type Parent document type
- * @return \Elastica\Query\HasChild Current object
+ * @return $this
*/
public function setType($type)
{
@@ -51,10 +52,11 @@ class HasChild extends AbstractQuery
}
/**
- * Sets the scope
+ * Sets the scope.
+ *
+ * @param string $scope Scope
*
- * @param string $scope Scope
- * @return \Elastica\Query\HasChild Current object
+ * @return $this
*/
public function setScope($scope)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/HasParent.php b/vendor/ruflin/elastica/lib/Elastica/Query/HasParent.php
index 809fb18d..03aae13b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/HasParent.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/HasParent.php
@@ -1,22 +1,20 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Query as BaseQuery;
/**
- * Returns child documents having parent docs matching the query
+ * Returns child documents having parent docs matching the query.
*
- * @category Xodoa
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/has-parent-query.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-parent-query.html
*/
class HasParent extends AbstractQuery
{
/**
- * Construct HasChild Query
+ * Construct HasChild Query.
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @param string $type Parent document type
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ * @param string $type Parent document type
*/
public function __construct($query, $type)
{
@@ -25,10 +23,11 @@ class HasParent extends AbstractQuery
}
/**
- * Sets query object
+ * Sets query object.
+ *
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Filter\HasParent
+ * @return $this
*/
public function setQuery($query)
{
@@ -39,10 +38,11 @@ class HasParent extends AbstractQuery
}
/**
- * Set type of the parent document
+ * Set type of the parent document.
*
- * @param string $type Parent document type
- * @return \Elastica\Filter\HasParent Current object
+ * @param string $type Parent document type
+ *
+ * @return $this
*/
public function setType($type)
{
@@ -50,10 +50,11 @@ class HasParent extends AbstractQuery
}
/**
- * Sets the scope
+ * Sets the scope.
+ *
+ * @param string $scope Scope
*
- * @param string $scope Scope
- * @return \Elastica\Filter\HasParent Current object
+ * @return $this
*/
public function setScope($scope)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Ids.php b/vendor/ruflin/elastica/lib/Elastica/Query/Ids.php
index f4a6f1aa..5d76efcf 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Ids.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Ids.php
@@ -1,32 +1,31 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Type;
/**
- * Ids Query
+ * Ids Query.
*
- * @category Xodoa
- * @package Elastica
* @author Lee Parker
* @author Nicolas Ruflin <spam@ruflin.com>
* @author Tim Rupp
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/ids-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html
*/
class Ids extends AbstractQuery
{
/**
- * Params
+ * Params.
*
* @var array Params
*/
protected $_params = array();
/**
- * Creates filter object
+ * Creates filter object.
*
* @param string|\Elastica\Type $type Type to filter on
- * @param array $ids List of ids
+ * @param array $ids List of ids
*/
public function __construct($type = null, array $ids = array())
{
@@ -35,10 +34,11 @@ class Ids extends AbstractQuery
}
/**
- * Adds one more filter to the and filter
+ * Adds one more filter to the and filter.
+ *
+ * @param string $id Adds id to filter
*
- * @param string $id Adds id to filter
- * @return \Elastica\Query\Ids Current object
+ * @return $this
*/
public function addId($id)
{
@@ -48,10 +48,11 @@ class Ids extends AbstractQuery
}
/**
- * Adds one more type to query
+ * Adds one more type to query.
*
- * @param string|\Elastica\Type $type Type name or object
- * @return \Elastica\Query\Ids Current object
+ * @param string|\Elastica\Type $type Type name or object
+ *
+ * @return $this
*/
public function addType($type)
{
@@ -68,10 +69,11 @@ class Ids extends AbstractQuery
}
/**
- * Set type
+ * Set type.
+ *
+ * @param string|\Elastica\Type $type Type name or object
*
- * @param string|\Elastica\Type $type Type name or object
- * @return \Elastica\Query\Ids Current object
+ * @return $this
*/
public function setType($type)
{
@@ -88,10 +90,11 @@ class Ids extends AbstractQuery
}
/**
- * Sets the ids to filter
+ * Sets the ids to filter.
*
- * @param array|string $ids List of ids
- * @return \Elastica\Query\Ids Current object
+ * @param array|string $ids List of ids
+ *
+ * @return $this
*/
public function setIds($ids)
{
@@ -105,9 +108,10 @@ class Ids extends AbstractQuery
}
/**
- * Converts filter to array
+ * Converts filter to array.
*
* @see \Elastica\Query\AbstractQuery::toArray()
+ *
* @return array Query array
*/
public function toArray()
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Image.php b/vendor/ruflin/elastica/lib/Elastica/Query/Image.php
new file mode 100644
index 00000000..bf7d028b
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Image.php
@@ -0,0 +1,187 @@
+<?php
+namespace Elastica\Query;
+
+/**
+ * Image query.
+ *
+ * @author Jacques Moati <jacques@moati.net>
+ *
+ * @link https://github.com/kzwang/elasticsearch-image
+ *
+ * To use this feature you have to call the following command in the
+ * elasticsearch directory:
+ * <code>
+ * ./bin/plugin --url https://github.com/SibaTokyo/elasticsearch-image/releases/download/1.4.0/elasticsearch-image-1.4.0.zip --install image
+ * </code>
+ * This installs the image plugin. More infos
+ * can be found here: {@link https://github.com/SibaTokyo/elasticsearch-image}
+ */
+class Image extends AbstractQuery
+{
+ public function __construct(array $image = array())
+ {
+ $this->setParams($image);
+ }
+
+ /**
+ * Sets a param for the given field.
+ *
+ * @param string $field
+ * @param string $key
+ * @param string $value
+ *
+ * @return $this
+ */
+ public function setFieldParam($field, $key, $value)
+ {
+ if (!isset($this->_params[$field])) {
+ $this->_params[$field] = array();
+ }
+
+ $this->_params[$field][$key] = $value;
+
+ return $this;
+ }
+
+ /**
+ * Set field boost value.
+ *
+ * If not set, defaults to 1.0.
+ *
+ * @param string $field
+ * @param float $boost
+ *
+ * @return $this
+ */
+ public function setFieldBoost($field, $boost = 1.0)
+ {
+ return $this->setFieldParam($field, 'boost', (float) $boost);
+ }
+
+ /**
+ * Set field feature value.
+ *
+ * If not set, defaults CEDD.
+ *
+ * @param string $field
+ * @param string $feature
+ *
+ * @return $this
+ */
+ public function setFieldFeature($field, $feature = 'CEDD')
+ {
+ return $this->setFieldParam($field, 'feature', $feature);
+ }
+
+ /**
+ * Set field hash value.
+ *
+ * If not set, defaults BIT_SAMPLING.
+ *
+ * @param string $field
+ * @param string $hash
+ *
+ * @return $this
+ */
+ public function setFieldHash($field, $hash = 'BIT_SAMPLING')
+ {
+ return $this->setFieldParam($field, 'hash', $hash);
+ }
+
+ /**
+ * Set field image value.
+ *
+ * @param string $field
+ * @param string $path File will be base64_encode
+ *
+ * @throws \Exception
+ *
+ * @return $this
+ */
+ public function setFieldImage($field, $path)
+ {
+ if (!file_exists($path) || !is_readable($path)) {
+ throw new \Exception(sprintf("File %s can't be open", $path));
+ }
+
+ return $this->setFieldParam($field, 'image', base64_encode(file_get_contents($path)));
+ }
+
+ /**
+ * Set field index value.
+ *
+ * @param string $field
+ * @param string $index
+ *
+ * @return $this
+ */
+ public function setFieldIndex($field, $index)
+ {
+ return $this->setFieldParam($field, 'index', $index);
+ }
+
+ /**
+ * Set field type value.
+ *
+ * @param string $field
+ * @param string $type
+ *
+ * @return $this
+ */
+ public function setFieldType($field, $type)
+ {
+ return $this->setFieldParam($field, 'type', $type);
+ }
+
+ /**
+ * Set field id value.
+ *
+ * @param string $field
+ * @param string $id
+ *
+ * @return $this
+ */
+ public function setFieldId($field, $id)
+ {
+ return $this->setFieldParam($field, 'id', $id);
+ }
+
+ /**
+ * Set field path value.
+ *
+ * @param string $field
+ * @param string $path
+ *
+ * @return $this
+ */
+ public function setFieldPath($field, $path)
+ {
+ return $this->setFieldParam($field, 'path', $path);
+ }
+
+ /**
+ * Define quickly a reference image already in your elasticsearch database.
+ *
+ * If not set, path will be the same as $field.
+ *
+ * @param string $field
+ * @param string $index
+ * @param string $type
+ * @param string $id
+ * @param string $path
+ *
+ * @return $this
+ */
+ public function setImageByReference($field, $index, $type, $id, $path = null)
+ {
+ if (null === $path) {
+ $path = $field;
+ }
+
+ $this->setFieldIndex($field, $index);
+ $this->setFieldType($field, $type);
+ $this->setFieldId($field, $id);
+
+ return $this->setFieldPath($field, $path);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Match.php b/vendor/ruflin/elastica/lib/Elastica/Query/Match.php
index ba66ad63..abb40970 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Match.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Match.php
@@ -1,27 +1,37 @@
<?php
-
namespace Elastica\Query;
/**
- * Match query
+ * Match query.
*
- * @category Xodoa
- * @package Elastica
* @author F21
* @author WONG Wing Lun <luiges90@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/match-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html
*/
class Match extends AbstractQuery
{
- const ZERO_TERM_NONE = 'none';
- const ZERO_TERM_ALL = 'all';
+ const ZERO_TERM_NONE = 'none';
+ const ZERO_TERM_ALL = 'all';
+
+ /**
+ * @param string $field
+ * @param mixed $values
+ */
+ public function __construct($field = null, $values = null)
+ {
+ if ($field !== null && $values !== null) {
+ $this->setParam($field, $values);
+ }
+ }
/**
- * Sets a param for the message array
+ * Sets a param for the message array.
+ *
+ * @param string $field
+ * @param mixed $values
*
- * @param string $field
- * @param mixed $values
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setField($field, $values)
{
@@ -29,12 +39,13 @@ class Match extends AbstractQuery
}
/**
- * Sets a param for the given field
+ * Sets a param for the given field.
*
- * @param string $field
- * @param string $key
- * @param string $value
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param string $key
+ * @param string $value
+ *
+ * @return $this
*/
public function setFieldParam($field, $key, $value)
{
@@ -48,11 +59,12 @@ class Match extends AbstractQuery
}
/**
- * Sets the query string
+ * Sets the query string.
+ *
+ * @param string $field
+ * @param string $query
*
- * @param string $field
- * @param string $query
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldQuery($field, $query)
{
@@ -60,11 +72,12 @@ class Match extends AbstractQuery
}
/**
- * Set field type
+ * Set field type.
+ *
+ * @param string $field
+ * @param string $type
*
- * @param string $field
- * @param string $type
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldType($field, $type)
{
@@ -72,11 +85,12 @@ class Match extends AbstractQuery
}
/**
- * Set field operator
+ * Set field operator.
*
- * @param string $field
- * @param string $operator
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param string $operator
+ *
+ * @return $this
*/
public function setFieldOperator($field, $operator)
{
@@ -84,11 +98,12 @@ class Match extends AbstractQuery
}
/**
- * Set field analyzer
+ * Set field analyzer.
+ *
+ * @param string $field
+ * @param string $analyzer
*
- * @param string $field
- * @param string $analyzer
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldAnalyzer($field, $analyzer)
{
@@ -96,13 +111,14 @@ class Match extends AbstractQuery
}
/**
- * Set field boost value
+ * Set field boost value.
*
* If not set, defaults to 1.0.
*
- * @param string $field
- * @param float $boost
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param float $boost
+ *
+ * @return $this
*/
public function setFieldBoost($field, $boost = 1.0)
{
@@ -110,12 +126,14 @@ class Match extends AbstractQuery
}
/**
- * Set field minimum should match
+ * Set field minimum should match.
*
- * @param string $field
- * @param int|string $minimumShouldMatch
- * @return \Elastica\Query\Match
- * @link Possible values for minimum_should_match http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
+ * @param string $field
+ * @param int|string $minimumShouldMatch
+ *
+ * @return $this
+ *
+ * @link Possible values for minimum_should_match http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
*/
public function setFieldMinimumShouldMatch($field, $minimumShouldMatch)
{
@@ -123,11 +141,12 @@ class Match extends AbstractQuery
}
/**
- * Set field fuzziness
+ * Set field fuzziness.
+ *
+ * @param string $field
+ * @param mixed $fuzziness
*
- * @param string $field
- * @param mixed $fuzziness
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldFuzziness($field, $fuzziness)
{
@@ -135,11 +154,12 @@ class Match extends AbstractQuery
}
/**
- * Set field fuzzy rewrite
+ * Set field fuzzy rewrite.
*
- * @param string $field
- * @param string $fuzzyRewrite
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param string $fuzzyRewrite
+ *
+ * @return $this
*/
public function setFieldFuzzyRewrite($field, $fuzzyRewrite)
{
@@ -147,11 +167,12 @@ class Match extends AbstractQuery
}
/**
- * Set field prefix length
+ * Set field prefix length.
+ *
+ * @param string $field
+ * @param int $prefixLength
*
- * @param string $field
- * @param int $prefixLength
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldPrefixLength($field, $prefixLength)
{
@@ -159,11 +180,12 @@ class Match extends AbstractQuery
}
/**
- * Set field max expansions
+ * Set field max expansions.
+ *
+ * @param string $field
+ * @param int $maxExpansions
*
- * @param string $field
- * @param int $maxExpansions
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldMaxExpansions($field, $maxExpansions)
{
@@ -171,13 +193,14 @@ class Match extends AbstractQuery
}
/**
- * Set zero terms query
+ * Set zero terms query.
*
* If not set, default to 'none'
*
- * @param string $field
- * @param string $zeroTermQuery
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param string $zeroTermQuery
+ *
+ * @return $this
*/
public function setFieldZeroTermsQuery($field, $zeroTermQuery = 'none')
{
@@ -185,11 +208,12 @@ class Match extends AbstractQuery
}
/**
- * Set cutoff frequency
+ * Set cutoff frequency.
+ *
+ * @param string $field
+ * @param float $cutoffFrequency
*
- * @param string $field
- * @param float $cutoffFrequency
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFieldCutoffFrequency($field, $cutoffFrequency)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/MatchAll.php b/vendor/ruflin/elastica/lib/Elastica/Query/MatchAll.php
index 23b4fdfc..d01aaee8 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/MatchAll.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/MatchAll.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Query;
/**
- * Match all query. Returns all results
+ * Match all query. Returns all results.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/match-all-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-all-query.html
*/
class MatchAll extends AbstractQuery
{
/**
- * Creates match all query
+ * Creates match all query.
*/
public function __construct()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrase.php b/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrase.php
new file mode 100644
index 00000000..54302f90
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrase.php
@@ -0,0 +1,13 @@
+<?php
+namespace Elastica\Query;
+
+/**
+ * Match Phrase query.
+ *
+ * @author Jacques Moati <jacques@moati.net>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#_phrase
+ */
+class MatchPhrase extends Match
+{
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrasePrefix.php b/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrasePrefix.php
new file mode 100644
index 00000000..61764bda
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/MatchPhrasePrefix.php
@@ -0,0 +1,13 @@
+<?php
+namespace Elastica\Query;
+
+/**
+ * Match Phrase Prefix query.
+ *
+ * @author Jacques Moati <jacques@moati.net>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#_match_phrase_prefix
+ */
+class MatchPhrasePrefix extends Match
+{
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/MoreLikeThis.php b/vendor/ruflin/elastica/lib/Elastica/Query/MoreLikeThis.php
index d9ae4284..cd375db5 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/MoreLikeThis.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/MoreLikeThis.php
@@ -1,21 +1,20 @@
<?php
-
namespace Elastica\Query;
/**
- * More Like This query
+ * More Like This query.
*
- * @category Xodoa
- * @package Elastica
* @author Raul Martinez, Jr <juneym@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/mlt-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html
*/
class MoreLikeThis extends AbstractQuery
{
/**
- * Adds field to mlt query
+ * Set fields to which to restrict the mlt query.
+ *
+ * @param array $fields Field names
*
- * @param array $fields Field names
* @return \Elastica\Query\MoreLikeThis Current object
*/
public function setFields(array $fields)
@@ -24,10 +23,23 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set the "like_text" value
+ * Set document ids for the mlt query.
+ *
+ * @param array $ids Document ids
+ *
+ * @return \Elastica\Query\MoreLikeThis Current object
+ */
+ public function setIds(array $ids)
+ {
+ return $this->setParam('ids', $ids);
+ }
+
+ /**
+ * Set the "like_text" value.
+ *
+ * @param string $likeText
*
- * @param string $likeText
- * @return \Elastica\Query\MoreLikeThis This current object
+ * @return $this
*/
public function setLikeText($likeText)
{
@@ -37,10 +49,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set boost
+ * Set boost.
*
- * @param float $boost Boost value
- * @return \Elastica\Query\MoreLikeThis Query object
+ * @param float $boost Boost value
+ *
+ * @return $this
*/
public function setBoost($boost)
{
@@ -48,10 +61,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set max_query_terms
+ * Set max_query_terms.
+ *
+ * @param int $maxQueryTerms Max query terms value
*
- * @param int $maxQueryTerms Max query terms value
- * @return \Elastica\Query\MoreLikeThis
+ * @return $this
*/
public function setMaxQueryTerms($maxQueryTerms)
{
@@ -59,10 +73,13 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set percent terms to match
+ * Set percent terms to match.
+ *
+ * @param float $percentTermsToMatch Percentage
+ *
+ * @return $this
*
- * @param float $percentTermsToMatch Percentage
- * @return \Elastica\Query\MoreLikeThis
+ * @deprecated Option "percent_terms_to_match" deprecated as of ES 1.5. Use "minimum_should_match" instead.
*/
public function setPercentTermsToMatch($percentTermsToMatch)
{
@@ -70,10 +87,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set min term frequency
+ * Set min term frequency.
*
- * @param int $minTermFreq
- * @return \Elastica\Query\MoreLikeThis
+ * @param int $minTermFreq
+ *
+ * @return $this
*/
public function setMinTermFrequency($minTermFreq)
{
@@ -81,10 +99,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * set min document frequency
+ * set min document frequency.
+ *
+ * @param int $minDocFreq
*
- * @param int $minDocFreq
- * @return \Elastica\Query\MoreLikeThis
+ * @return $this
*/
public function setMinDocFrequency($minDocFreq)
{
@@ -92,10 +111,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * set max document frequency
+ * set max document frequency.
*
- * @param int $maxDocFreq
- * @return \Elastica\Query\MoreLikeThis
+ * @param int $maxDocFreq
+ *
+ * @return $this
*/
public function setMaxDocFrequency($maxDocFreq)
{
@@ -103,10 +123,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set min word length
+ * Set min word length.
+ *
+ * @param int $minWordLength
*
- * @param int $minWordLength
- * @return \Elastica\Query\MoreLikeThis
+ * @return $this
*/
public function setMinWordLength($minWordLength)
{
@@ -114,10 +135,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set max word length
+ * Set max word length.
*
- * @param int $maxWordLength
- * @return \Elastica\Query\MoreLikeThis
+ * @param int $maxWordLength
+ *
+ * @return $this
*/
public function setMaxWordLength($maxWordLength)
{
@@ -125,11 +147,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set boost terms
+ * Set boost terms.
+ *
+ * @param bool $boostTerms
*
- * @param bool $boostTerms
- * @return \Elastica\Query\MoreLikeThis
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/mlt-query.html
+ * @return $this
*/
public function setBoostTerms($boostTerms)
{
@@ -137,10 +159,11 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set analyzer
+ * Set analyzer.
*
- * @param string $analyzer
- * @return \Elastica\Query\MoreLikeThis
+ * @param string $analyzer
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
@@ -150,13 +173,26 @@ class MoreLikeThis extends AbstractQuery
}
/**
- * Set stop words
+ * Set stop words.
+ *
+ * @param array $stopWords
*
- * @param array $stopWords
- * @return \Elastica\Query\MoreLikeThis
+ * @return $this
*/
public function setStopWords(array $stopWords)
{
return $this->setParam('stop_words', $stopWords);
}
+
+ /**
+ * Set minimum_should_match option.
+ *
+ * @param int|string $minimumShouldMatch
+ *
+ * @return $this
+ */
+ public function setMinimumShouldMatch($minimumShouldMatch)
+ {
+ return $this->setParam('minimum_should_match', $minimumShouldMatch);
+ }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/MultiMatch.php b/vendor/ruflin/elastica/lib/Elastica/Query/MultiMatch.php
index ac2d01b3..0771f370 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/MultiMatch.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/MultiMatch.php
@@ -1,36 +1,35 @@
<?php
-
namespace Elastica\Query;
/**
- * Multi Match
+ * Multi Match.
*
- * @category Xodoa
- * @package Elastica
* @author Rodolfo Adhenawer Campagnoli Moraes <adhenawer@gmail.com>
* @author Wong Wing Lun <luiges90@gmail.com>
* @author Tristan Maindron <tmaindron@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/multi-match-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html
*/
class MultiMatch extends AbstractQuery
{
- const TYPE_BEST_FIELDS = 'best_fields';
- const TYPE_MOST_FIELDS = 'most_fields';
- const TYPE_CROSS_FIELDS = 'cross_fields';
- const TYPE_PHRASE = 'phrase';
+ const TYPE_BEST_FIELDS = 'best_fields';
+ const TYPE_MOST_FIELDS = 'most_fields';
+ const TYPE_CROSS_FIELDS = 'cross_fields';
+ const TYPE_PHRASE = 'phrase';
const TYPE_PHRASE_PREFIX = 'phrase_prefix';
- const OPERATOR_OR = 'or';
- const OPERATOR_AND = 'and';
+ const OPERATOR_OR = 'or';
+ const OPERATOR_AND = 'and';
- const ZERO_TERM_NONE = 'none';
- const ZERO_TERM_ALL = 'all';
+ const ZERO_TERM_NONE = 'none';
+ const ZERO_TERM_ALL = 'all';
/**
- * Sets the query
+ * Sets the query.
*
- * @param string $query Query
- * @return \Elastica\Query\MultiMatch Current object
+ * @param string $query Query
+ *
+ * @return $this
*/
public function setQuery($query = '')
{
@@ -40,8 +39,9 @@ class MultiMatch extends AbstractQuery
/**
* Sets Fields to be used in the query.
*
- * @param array $fields Fields
- * @return \Elastica\Query\MultiMatch Current object
+ * @param array $fields Fields
+ *
+ * @return $this
*/
public function setFields($fields = array())
{
@@ -53,8 +53,9 @@ class MultiMatch extends AbstractQuery
*
* If not set, defaults to true.
*
- * @param boolean $useDisMax
- * @return \Elastica\Query\MultiMatch Current object
+ * @param bool $useDisMax
+ *
+ * @return $this
*/
public function setUseDisMax($useDisMax = true)
{
@@ -66,8 +67,9 @@ class MultiMatch extends AbstractQuery
*
* If not set, defaults to 0.0.
*
- * @param float $tieBreaker
- * @return \Elastica\Query\MultiMatch Current object
+ * @param float $tieBreaker
+ *
+ * @return $this
*/
public function setTieBreaker($tieBreaker = 0.0)
{
@@ -75,12 +77,13 @@ class MultiMatch extends AbstractQuery
}
/**
- * Sets operator for Match Query
+ * Sets operator for Match Query.
*
* If not set, defaults to 'or'
*
- * @param string $operator
- * @return \Elastica\Query\MultiMatch Current object
+ * @param string $operator
+ *
+ * @return $this
*/
public function setOperator($operator = 'or')
{
@@ -88,23 +91,25 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set field minimum should match for Match Query
+ * Set field minimum should match for Match Query.
+ *
+ * @param mixed $minimumShouldMatch
*
- * @param int $minimumShouldMatch
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setMinimumShouldMatch($minimumShouldMatch)
{
- return $this->setParam('minimum_should_match', (int) $minimumShouldMatch);
+ return $this->setParam('minimum_should_match', $minimumShouldMatch);
}
/**
- * Set zero terms query for Match Query
+ * Set zero terms query for Match Query.
*
* If not set, default to 'none'
*
- * @param string $zeroTermQuery
- * @return \Elastica\Query\Match
+ * @param string $zeroTermQuery
+ *
+ * @return $this
*/
public function setZeroTermsQuery($zeroTermQuery = 'none')
{
@@ -112,10 +117,11 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set cutoff frequency for Match Query
+ * Set cutoff frequency for Match Query.
+ *
+ * @param float $cutoffFrequency
*
- * @param float $cutoffFrequency
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setCutoffFrequency($cutoffFrequency)
{
@@ -123,11 +129,12 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set type
+ * Set type.
*
- * @param string $field
- * @param string $type
- * @return \Elastica\Query\Match
+ * @param string $field
+ * @param string $type
+ *
+ * @return $this
*/
public function setType($type)
{
@@ -135,10 +142,11 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set fuzziness
+ * Set fuzziness.
+ *
+ * @param float $fuzziness
*
- * @param float $fuzziness
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setFuzziness($fuzziness)
{
@@ -146,10 +154,11 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set prefix length
+ * Set prefix length.
*
- * @param int $prefixLength
- * @return \Elastica\Query\Match
+ * @param int $prefixLength
+ *
+ * @return $this
*/
public function setPrefixLength($prefixLength)
{
@@ -157,10 +166,11 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set max expansions
+ * Set max expansions.
+ *
+ * @param int $maxExpansions
*
- * @param int $maxExpansions
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setMaxExpansions($maxExpansions)
{
@@ -168,10 +178,11 @@ class MultiMatch extends AbstractQuery
}
/**
- * Set analyzer
+ * Set analyzer.
+ *
+ * @param string $analyzer
*
- * @param string $analyzer
- * @return \Elastica\Query\Match
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Nested.php b/vendor/ruflin/elastica/lib/Elastica/Query/Nested.php
index 3d2f2f64..b072cfc8 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Nested.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Nested.php
@@ -1,22 +1,21 @@
<?php
-
namespace Elastica\Query;
/**
- * Nested query
+ * Nested query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/nested-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html
*/
class Nested extends AbstractQuery
{
/**
- * Adds field to mlt query
+ * Adds field to mlt query.
+ *
+ * @param string $path Nested object path
*
- * @param string $path Nested object path
- * @return \Elastica\Query\Nested
+ * @return $this
*/
public function setPath($path)
{
@@ -24,10 +23,11 @@ class Nested extends AbstractQuery
}
/**
- * Sets nested query
+ * Sets nested query.
*
- * @param \Elastica\Query\AbstractQuery $query
- * @return \Elastica\Query\Nested
+ * @param \Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery(AbstractQuery $query)
{
@@ -35,10 +35,11 @@ class Nested extends AbstractQuery
}
/**
- * Set score method
+ * Set score method.
+ *
+ * @param string $scoreMode Options: avg, total, max and none.
*
- * @param string $scoreMode Options: avg, total, max and none.
- * @return \Elastica\Query\Nested
+ * @return $this
*/
public function setScoreMode($scoreMode)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Prefix.php b/vendor/ruflin/elastica/lib/Elastica/Query/Prefix.php
index 4306fd9c..c2b903ea 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Prefix.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Prefix.php
@@ -1,18 +1,15 @@
<?php
-
namespace Elastica\Query;
/**
- * Prefix query
+ * Prefix query.
*
- * @category Xodoa
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/prefix-query.html
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html
*/
class Prefix extends AbstractQuery
{
/**
- * Constructs the Prefix query object
+ * Constructs the Prefix query object.
*
* @param array $prefix OPTIONAL Calls setRawPrefix with the given $prefix array
*/
@@ -25,8 +22,9 @@ class Prefix extends AbstractQuery
* setRawPrefix can be used instead of setPrefix if some more special
* values for a prefix have to be set.
*
- * @param array $prefix Prefix array
- * @return \Elastica\Query\Prefix Current object
+ * @param array $prefix Prefix array
+ *
+ * @return $this
*/
public function setRawPrefix(array $prefix)
{
@@ -34,12 +32,13 @@ class Prefix extends AbstractQuery
}
/**
- * Adds a prefix to the prefix query
+ * Adds a prefix to the prefix query.
+ *
+ * @param string $key Key to query
+ * @param string|array $value Values(s) for the query. Boost can be set with array
+ * @param float $boost OPTIONAL Boost value (default = 1.0)
*
- * @param string $key Key to query
- * @param string|array $value Values(s) for the query. Boost can be set with array
- * @param float $boost OPTIONAL Boost value (default = 1.0)
- * @return \Elastica\Query\Prefix Current object
+ * @return $this
*/
public function setPrefix($key, $value, $boost = 1.0)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/QueryString.php b/vendor/ruflin/elastica/lib/Elastica/Query/QueryString.php
index 7d0b0094..89ea77cd 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/QueryString.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/QueryString.php
@@ -1,27 +1,26 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Exception\InvalidException;
/**
- * QueryString query
+ * QueryString query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>, Jasper van Wanrooy <jasper@vanwanrooy.net>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
*/
class QueryString extends AbstractQuery
{
/**
- * Query string
+ * Query string.
*
* @var string Query string
*/
protected $_queryString = '';
/**
- * Creates query string object. Calls setQuery with argument
+ * Creates query string object. Calls setQuery with argument.
*
* @param string $queryString OPTIONAL Query string for object
*/
@@ -31,11 +30,13 @@ class QueryString extends AbstractQuery
}
/**
- * Sets a new query string for the object
+ * Sets a new query string for the object.
+ *
+ * @param string $query Query string
+ *
+ * @throws \Elastica\Exception\InvalidException If given parameter is not a string
*
- * @param string $query Query string
- * @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Query\QueryString Current object
+ * @return $this
*/
public function setQuery($query = '')
{
@@ -47,12 +48,13 @@ class QueryString extends AbstractQuery
}
/**
- * Sets the default field
+ * Sets the default field.
*
* If no field is set, _all is chosen
*
- * @param string $field Field
- * @return \Elastica\Query\QueryString Current object
+ * @param string $field Field
+ *
+ * @return $this
*/
public function setDefaultField($field)
{
@@ -60,12 +62,13 @@ class QueryString extends AbstractQuery
}
/**
- * Sets the default operator AND or OR
+ * Sets the default operator AND or OR.
*
* If no operator is set, OR is chosen
*
- * @param string $operator Operator
- * @return \Elastica\Query\QueryString Current object
+ * @param string $operator Operator
+ *
+ * @return $this
*/
public function setDefaultOperator($operator)
{
@@ -75,8 +78,9 @@ class QueryString extends AbstractQuery
/**
* Sets the analyzer to analyze the query with.
*
- * @param string $analyzer Analyser to use
- * @return \Elastica\Query\QueryString Current object
+ * @param string $analyzer Analyser to use
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
@@ -88,8 +92,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to true.
*
- * @param bool $allow
- * @return \Elastica\Query\QueryString Current object
+ * @param bool $allow
+ *
+ * @return $this
*/
public function setAllowLeadingWildcard($allow = true)
{
@@ -97,25 +102,13 @@ class QueryString extends AbstractQuery
}
/**
- * Sets the parameter to auto-lowercase terms of some queries.
- *
- * If not set, defaults to true.
- *
- * @param bool $lowercase
- * @return \Elastica\Query\QueryString Current object
- */
- public function setLowercaseExpandedTerms($lowercase = true)
- {
- return $this->setParam('lowercase_expanded_terms', (bool) $lowercase);
- }
-
- /**
* Sets the parameter to enable the position increments in result queries.
*
* If not set, defaults to true.
*
- * @param bool $enabled
- * @return \Elastica\Query\QueryString Current object
+ * @param bool $enabled
+ *
+ * @return $this
*/
public function setEnablePositionIncrements($enabled = true)
{
@@ -127,8 +120,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to 0.
*
- * @param int $length
- * @return \Elastica\Query\QueryString Current object
+ * @param int $length
+ *
+ * @return $this
*/
public function setFuzzyPrefixLength($length = 0)
{
@@ -140,8 +134,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to 0.5
*
- * @param float $minSim
- * @return \Elastica\Query\QueryString Current object
+ * @param float $minSim
+ *
+ * @return $this
*/
public function setFuzzyMinSim($minSim = 0.5)
{
@@ -154,8 +149,9 @@ class QueryString extends AbstractQuery
* If zero, exact phrases are required.
* If not set, defaults to zero.
*
- * @param int $phraseSlop
- * @return \Elastica\Query\QueryString Current object
+ * @param int $phraseSlop
+ *
+ * @return $this
*/
public function setPhraseSlop($phraseSlop = 0)
{
@@ -167,8 +163,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to 1.0.
*
- * @param float $boost
- * @return \Elastica\Query\QueryString Current object
+ * @param float $boost
+ *
+ * @return $this
*/
public function setBoost($boost = 1.0)
{
@@ -180,8 +177,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to true
*
- * @param bool $analyze
- * @return \Elastica\Query\QueryString Current object
+ * @param bool $analyze
+ *
+ * @return $this
*/
public function setAnalyzeWildcard($analyze = true)
{
@@ -193,8 +191,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to true.
*
- * @param bool $autoGenerate
- * @return \Elastica\Query\QueryString Current object
+ * @param bool $autoGenerate
+ *
+ * @return $this
*/
public function setAutoGeneratePhraseQueries($autoGenerate = true)
{
@@ -202,13 +201,13 @@ class QueryString extends AbstractQuery
}
/**
- * Sets the fields
+ * Sets the fields. If no fields are set, _all is chosen.
+ *
+ * @param array $fields Fields
*
- * If no fields are set, _all is chosen
+ * @throws \Elastica\Exception\InvalidException If given parameter is not an array
*
- * @param array $fields Fields
- * @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Query\QueryString Current object
+ * @return $this
*/
public function setFields(array $fields)
{
@@ -222,8 +221,9 @@ class QueryString extends AbstractQuery
/**
* Whether to use bool or dis_max queries to internally combine results for multi field search.
*
- * @param bool $value Determines whether to use
- * @return \Elastica\Query\QueryString Current object
+ * @param bool $value Determines whether to use
+ *
+ * @return $this
*/
public function setUseDisMax($value = true)
{
@@ -235,8 +235,9 @@ class QueryString extends AbstractQuery
*
* If not set, defaults to 0.
*
- * @param int $tieBreaker
- * @return \Elastica\Query\QueryString Current object
+ * @param int $tieBreaker
+ *
+ * @return $this
*/
public function setTieBreaker($tieBreaker = 0)
{
@@ -244,24 +245,38 @@ class QueryString extends AbstractQuery
}
/**
- * Set a re-write condition. See https://github.com/elasticsearch/elasticsearch/issues/1186 for additional information
+ * Set a re-write condition. See https://github.com/elasticsearch/elasticsearch/issues/1186 for additional information.
*
- * @param string $rewrite
- * @return \Elastica\Query\QueryString Current object
+ * @param string $rewrite
+ *
+ * @return $this
*/
- public function setRewrite($rewrite = "")
+ public function setRewrite($rewrite = '')
{
return $this->setParam('rewrite', $rewrite);
}
/**
- * Converts query to array
+ * Set timezone option.
+ *
+ * @param string $timezone
+ *
+ * @return $this
+ */
+ public function setTimezone($timezone)
+ {
+ return $this->setParam('time_zone', $timezone);
+ }
+
+ /**
+ * Converts query to array.
*
* @see \Elastica\Query\AbstractQuery::toArray()
+ *
* @return array Query array
*/
public function toArray()
{
- return array('query_string' => array_merge(array('query' => $this->_queryString), $this->getParams()),);
+ return array('query_string' => array_merge(array('query' => $this->_queryString), $this->getParams()));
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Range.php b/vendor/ruflin/elastica/lib/Elastica/Query/Range.php
index 54b79027..b2f9175a 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Range.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Range.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Query;
/**
- * Range query
+ * Range query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/range-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html
*/
class Range extends AbstractQuery
{
/**
- * Constructor
+ * Constructor.
*
* @param string $fieldName Field name
* @param array $args Field arguments
@@ -26,11 +24,12 @@ class Range extends AbstractQuery
}
/**
- * Adds a range field to the query
+ * Adds a range field to the query.
+ *
+ * @param string $fieldName Field name
+ * @param array $args Field arguments
*
- * @param string $fieldName Field name
- * @param array $args Field arguments
- * @return \Elastica\Query\Range Current object
+ * @return $this
*/
public function addField($fieldName, array $args)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Regexp.php b/vendor/ruflin/elastica/lib/Elastica/Query/Regexp.php
new file mode 100644
index 00000000..22a48560
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Regexp.php
@@ -0,0 +1,40 @@
+<?php
+namespace Elastica\Query;
+
+/**
+ * Regexp query.
+ *
+ * @author Aurélien Le Grand <gnitg@yahoo.fr>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html
+ */
+class Regexp extends AbstractQuery
+{
+ /**
+ * Construct regexp query.
+ *
+ * @param string $key OPTIONAL Regexp key
+ * @param string $value OPTIONAL Regexp value
+ * @param float $boost OPTIONAL Boost value (default = 1)
+ */
+ public function __construct($key = '', $value = null, $boost = 1.0)
+ {
+ if (!empty($key)) {
+ $this->setValue($key, $value, $boost);
+ }
+ }
+
+ /**
+ * Sets the query expression for a key with its boost value.
+ *
+ * @param string $key
+ * @param string $value
+ * @param float $boost
+ *
+ * @return $this
+ */
+ public function setValue($key, $value, $boost = 1.0)
+ {
+ return $this->setParam($key, array('value' => $value, 'boost' => $boost));
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Simple.php b/vendor/ruflin/elastica/lib/Elastica/Query/Simple.php
index 2448ca79..6ba9310d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Simple.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Simple.php
@@ -1,26 +1,23 @@
<?php
-
namespace Elastica\Query;
/**
* Simple query
* Pure php array query. Can be used to create any not existing type of query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Simple extends AbstractQuery
{
/**
- * Query
+ * Query.
*
* @var array Query
*/
protected $_query = array();
/**
- * Constructs a query based on an array
+ * Constructs a query based on an array.
*
* @param array $query Query array
*/
@@ -30,10 +27,11 @@ class Simple extends AbstractQuery
}
/**
- * Sets new query array
+ * Sets new query array.
+ *
+ * @param array $query Query array
*
- * @param array $query Query array
- * @return \Elastica\Query\Simple Current object
+ * @return $this
*/
public function setQuery(array $query)
{
@@ -43,9 +41,10 @@ class Simple extends AbstractQuery
}
/**
- * Converts query to array
+ * Converts query to array.
*
* @return array Query array
+ *
* @see \Elastica\Query\AbstractQuery::toArray()
*/
public function toArray()
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/SimpleQueryString.php b/vendor/ruflin/elastica/lib/Elastica/Query/SimpleQueryString.php
index a6c4ba9d..c2302d44 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/SimpleQueryString.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/SimpleQueryString.php
@@ -1,20 +1,19 @@
<?php
-
namespace Elastica\Query;
/**
- * Class SimpleQueryString
- * @package Elastica\Query
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html
+ * Class SimpleQueryString.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html
*/
class SimpleQueryString extends AbstractQuery
{
- const OPERATOR_AND = "and";
- const OPERATOR_OR = "or";
+ const OPERATOR_AND = 'and';
+ const OPERATOR_OR = 'or';
/**
* @param string $query
- * @param array $fields
+ * @param array $fields
*/
public function __construct($query, array $fields = array())
{
@@ -25,41 +24,60 @@ class SimpleQueryString extends AbstractQuery
}
/**
- * Set the querystring for this query
+ * Set the querystring for this query.
+ *
* @param string $query see ES documentation for querystring syntax
- * @return \Elastica\Query\SimpleQueryString
+ *
+ * @return $this
*/
public function setQuery($query)
{
- return $this->setParam("query", $query);
+ return $this->setParam('query', $query);
}
/**
* @param string[] $fields the fields on which to perform this query. Defaults to index.query.default_field.
- * @return \Elastica\Query\SimpleQueryString
+ *
+ * @return $this
*/
public function setFields(array $fields)
{
- return $this->setParam("fields", $fields);
+ return $this->setParam('fields', $fields);
}
/**
- * Set the default operator to use if no explicit operator is defined in the query string
+ * Set the default operator to use if no explicit operator is defined in the query string.
+ *
* @param string $operator see OPERATOR_* constants for options
- * @return \Elastica\Query\SimpleQueryString
+ *
+ * @return $this
*/
public function setDefaultOperator($operator)
{
- return $this->setParam("default_operator", $operator);
+ return $this->setParam('default_operator', $operator);
}
/**
- * Set the analyzer used to analyze each term of the query
+ * Set the analyzer used to analyze each term of the query.
+ *
* @param string $analyzer
- * @return \Elastica\Query\SimpleQueryString
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
- return $this->setParam("analyzer", $analyzer);
+ return $this->setParam('analyzer', $analyzer);
+ }
+
+ /**
+ * Set minimum_should_match option.
+ *
+ * @param int|string $minimumShouldMatch
+ *
+ * @return $this
+ */
+ public function setMinimumShouldMatch($minimumShouldMatch)
+ {
+ return $this->setParam('minimum_should_match', $minimumShouldMatch);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Term.php b/vendor/ruflin/elastica/lib/Elastica/Query/Term.php
index eb20eb86..8cfe0a88 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Term.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Term.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Query;
/**
- * Term query
+ * Term query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/term-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html
*/
class Term extends AbstractQuery
{
/**
- * Constructs the Term query object
+ * Constructs the Term query object.
*
* @param array $term OPTIONAL Calls setTerm with the given $term array
*/
@@ -26,8 +24,9 @@ class Term extends AbstractQuery
* Set term can be used instead of addTerm if some more special
* values for a term have to be set.
*
- * @param array $term Term array
- * @return \Elastica\Query\Term Current object
+ * @param array $term Term array
+ *
+ * @return $this
*/
public function setRawTerm(array $term)
{
@@ -35,12 +34,13 @@ class Term extends AbstractQuery
}
/**
- * Adds a term to the term query
+ * Adds a term to the term query.
+ *
+ * @param string $key Key to query
+ * @param string|array $value Values(s) for the query. Boost can be set with array
+ * @param float $boost OPTIONAL Boost value (default = 1.0)
*
- * @param string $key Key to query
- * @param string|array $value Values(s) for the query. Boost can be set with array
- * @param float $boost OPTIONAL Boost value (default = 1.0)
- * @return \Elastica\Query\Term Current object
+ * @return $this
*/
public function setTerm($key, $value, $boost = 1.0)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Terms.php b/vendor/ruflin/elastica/lib/Elastica/Query/Terms.php
index 41cc9216..54f26461 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Terms.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Terms.php
@@ -1,41 +1,40 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Exception\InvalidException;
/**
- * Terms query
+ * Terms query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/terms-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
*/
class Terms extends AbstractQuery
{
/**
- * Terms
+ * Terms.
*
* @var array Terms
*/
protected $_terms = array();
/**
- * Params
+ * Params.
*
* @var array Params
*/
protected $_params = array();
/**
- * Terms key
+ * Terms key.
*
* @var string Terms key
*/
protected $_key = '';
/**
- * Construct terms query
+ * Construct terms query.
*
* @param string $key OPTIONAL Terms key
* @param array $terms OPTIONAL Terms list
@@ -46,11 +45,12 @@ class Terms extends AbstractQuery
}
/**
- * Sets key and terms for the query
+ * Sets key and terms for the query.
+ *
+ * @param string $key Terms key
+ * @param array $terms Terms for the query.
*
- * @param string $key Terms key
- * @param array $terms Terms for the query.
- * @return \Elastica\Query\Terms
+ * @return $this
*/
public function setTerms($key, array $terms)
{
@@ -61,10 +61,11 @@ class Terms extends AbstractQuery
}
/**
- * Adds a single term to the list
+ * Adds a single term to the list.
*
- * @param string $term Term
- * @return \Elastica\Query\Terms
+ * @param string $term Term
+ *
+ * @return $this
*/
public function addTerm($term)
{
@@ -74,10 +75,11 @@ class Terms extends AbstractQuery
}
/**
- * Sets the minimum matching values
+ * Sets the minimum matching values.
+ *
+ * @param int $minimum Minimum value
*
- * @param int $minimum Minimum value
- * @return \Elastica\Query\Terms
+ * @return $this
*/
public function setMinimumMatch($minimum)
{
@@ -85,11 +87,13 @@ class Terms extends AbstractQuery
}
/**
- * Converts the terms object to an array
+ * Converts the terms object to an array.
*
* @see \Elastica\Query\AbstractQuery::toArray()
- * @throws \Elastica\Exception\InvalidException
- * @return array Query array
+ *
+ * @throws \Elastica\Exception\InvalidException If term key is empty
+ *
+ * @return array Query array
*/
public function toArray()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/TopChildren.php b/vendor/ruflin/elastica/lib/Elastica/Query/TopChildren.php
index baaf7501..6f15c79d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/TopChildren.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/TopChildren.php
@@ -1,23 +1,22 @@
<?php
-
namespace Elastica\Query;
+
use Elastica\Query as BaseQuery;
/**
* Runs the child query with an estimated hits size, and out of the hit docs, aggregates it into parent docs.
*
- * @category Xodoa
- * @package Elastica
* @author Wu Yang <darkyoung@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/top-children-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-top-children-query.html
*/
class TopChildren extends AbstractQuery
{
/**
- * Construct topChildren query
+ * Construct topChildren query.
*
* @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @param string $type Parent document type
+ * @param string $type Parent document type
*/
public function __construct($query, $type = null)
{
@@ -26,10 +25,11 @@ class TopChildren extends AbstractQuery
}
/**
- * Sets query object
+ * Sets query object.
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Query\TopChildren
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -40,10 +40,11 @@ class TopChildren extends AbstractQuery
}
/**
- * Set type of the parent document
+ * Set type of the parent document.
+ *
+ * @param string $type Parent document type
*
- * @param string $type Parent document type
- * @return \Elastica\Query\TopChildren Current object
+ * @return $this
*/
public function setType($type)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Query/Wildcard.php b/vendor/ruflin/elastica/lib/Elastica/Query/Wildcard.php
index 68aca67e..bfa5e751 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Query/Wildcard.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Query/Wildcard.php
@@ -1,19 +1,17 @@
<?php
-
namespace Elastica\Query;
/**
- * Wildcard query
+ * Wildcard query.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/query-dsl/wildcard-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html
*/
class Wildcard extends AbstractQuery
{
/**
- * Construct wildcard query
+ * Construct wildcard query.
*
* @param string $key OPTIONAL Wildcard key
* @param string $value OPTIONAL Wildcard value
@@ -27,12 +25,13 @@ class Wildcard extends AbstractQuery
}
/**
- * Sets the query expression for a key with its boost value
+ * Sets the query expression for a key with its boost value.
+ *
+ * @param string $key
+ * @param string $value
+ * @param float $boost
*
- * @param string $key
- * @param string $value
- * @param float $boost
- * @return \Elastica\Query\Wildcard
+ * @return $this
*/
public function setValue($key, $value, $boost = 1.0)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder.php
new file mode 100644
index 00000000..477c4525
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder.php
@@ -0,0 +1,114 @@
+<?php
+namespace Elastica;
+
+use Elastica\Exception\QueryBuilderException;
+use Elastica\QueryBuilder\DSL;
+use Elastica\QueryBuilder\Facade;
+use Elastica\QueryBuilder\Version;
+use Elastica\QueryBuilder\Version\Version150;
+
+/**
+ * Query Builder.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class QueryBuilder
+{
+ /**
+ * @var Version
+ */
+ private $_version;
+
+ /**
+ * @var Facade[]
+ */
+ private $_facades = array();
+
+ /**
+ * Constructor.
+ *
+ * @param Version $version
+ */
+ public function __construct(Version $version = null)
+ {
+ $this->_version = $version ?: new Version150();
+
+ $this->addDSL(new DSL\Query());
+ $this->addDSL(new DSL\Filter());
+ $this->addDSL(new DSL\Aggregation());
+ $this->addDSL(new DSL\Suggest());
+ }
+
+ /**
+ * Returns Facade for custom DSL object.
+ *
+ * @param $dsl
+ * @param array $arguments
+ *
+ * @throws QueryBuilderException
+ *
+ * @return Facade
+ */
+ public function __call($dsl, array $arguments)
+ {
+ if (false === isset($this->_facades[$dsl])) {
+ throw new QueryBuilderException('DSL "'.$dsl.'" not supported');
+ }
+
+ return $this->_facades[$dsl];
+ }
+
+ /**
+ * Adds a new DSL object.
+ *
+ * @param DSL $dsl
+ */
+ public function addDSL(DSL $dsl)
+ {
+ $this->_facades[$dsl->getType()] = new Facade($dsl, $this->_version);
+ }
+
+ /*
+ * convenience methods
+ */
+
+ /**
+ * Query DSL.
+ *
+ * @return DSL\Query
+ */
+ public function query()
+ {
+ return $this->_facades[DSL::TYPE_QUERY];
+ }
+
+ /**
+ * Filter DSL.
+ *
+ * @return DSL\Filter
+ */
+ public function filter()
+ {
+ return $this->_facades[DSL::TYPE_FILTER];
+ }
+
+ /**
+ * Aggregation DSL.
+ *
+ * @return DSL\Aggregation
+ */
+ public function aggregation()
+ {
+ return $this->_facades[DSL::TYPE_AGGREGATION];
+ }
+
+ /**
+ * Suggest DSL.
+ *
+ * @return DSL\Suggest
+ */
+ public function suggest()
+ {
+ return $this->_facades[DSL::TYPE_SUGGEST];
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL.php
new file mode 100644
index 00000000..976de5f4
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL.php
@@ -0,0 +1,22 @@
+<?php
+namespace Elastica\QueryBuilder;
+
+/**
+ * DSL Interface.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+interface DSL
+{
+ const TYPE_QUERY = 'query';
+ const TYPE_FILTER = 'filter';
+ const TYPE_AGGREGATION = 'aggregation';
+ const TYPE_SUGGEST = 'suggest';
+
+ /**
+ * must return type for QueryBuilder usage.
+ *
+ * @return string
+ */
+ public function getType();
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Aggregation.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Aggregation.php
new file mode 100644
index 00000000..8393b8aa
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Aggregation.php
@@ -0,0 +1,470 @@
+<?php
+namespace Elastica\QueryBuilder\DSL;
+
+use Elastica\Aggregation\Avg;
+use Elastica\Aggregation\Cardinality;
+use Elastica\Aggregation\DateHistogram;
+use Elastica\Aggregation\DateRange;
+use Elastica\Aggregation\ExtendedStats;
+use Elastica\Aggregation\Filter as FilterAggregation;
+use Elastica\Aggregation\Filters;
+use Elastica\Aggregation\GeoDistance;
+use Elastica\Aggregation\GeohashGrid;
+use Elastica\Aggregation\GlobalAggregation;
+use Elastica\Aggregation\Histogram;
+use Elastica\Aggregation\IpRange;
+use Elastica\Aggregation\Max;
+use Elastica\Aggregation\Min;
+use Elastica\Aggregation\Missing;
+use Elastica\Aggregation\Nested;
+use Elastica\Aggregation\Percentiles;
+use Elastica\Aggregation\Range;
+use Elastica\Aggregation\ReverseNested;
+use Elastica\Aggregation\ScriptedMetric;
+use Elastica\Aggregation\SignificantTerms;
+use Elastica\Aggregation\Stats;
+use Elastica\Aggregation\Sum;
+use Elastica\Aggregation\Terms;
+use Elastica\Aggregation\TopHits;
+use Elastica\Aggregation\ValueCount;
+use Elastica\Exception\NotImplementedException;
+use Elastica\Filter\AbstractFilter;
+use Elastica\QueryBuilder\DSL;
+
+/**
+ * elasticsearch aggregation DSL.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html
+ */
+class Aggregation implements DSL
+{
+ /**
+ * must return type for QueryBuilder usage.
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return DSL::TYPE_AGGREGATION;
+ }
+
+ /**
+ * min aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-min-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Min
+ */
+ public function min($name)
+ {
+ return new Min($name);
+ }
+
+ /**
+ * max aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-max-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Max
+ */
+ public function max($name)
+ {
+ return new Max($name);
+ }
+
+ /**
+ * sum aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-sum-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Sum
+ */
+ public function sum($name)
+ {
+ return new Sum($name);
+ }
+
+ /**
+ * avg aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-avg-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Avg
+ */
+ public function avg($name)
+ {
+ return new Avg($name);
+ }
+
+ /**
+ * stats aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-stats-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Stats
+ */
+ public function stats($name)
+ {
+ return new Stats($name);
+ }
+
+ /**
+ * extended stats aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-extendedstats-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return ExtendedStats
+ */
+ public function extended_stats($name)
+ {
+ return new ExtendedStats($name);
+ }
+
+ /**
+ * value count aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html
+ *
+ * @param string $name
+ * @param string $field
+ *
+ * @return ValueCount
+ */
+ public function value_count($name, $field)
+ {
+ return new ValueCount($name, $field);
+ }
+
+ /**
+ * percentiles aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-aggregation.html
+ *
+ * @param string $name the name of this aggregation
+ * @param string $field the field on which to perform this aggregation
+ *
+ * @return Percentiles
+ */
+ public function percentiles($name, $field = null)
+ {
+ return new Percentiles($name, $field);
+ }
+
+ /**
+ * percentile ranks aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-rank-aggregation.html
+ *
+ * @param string $name
+ */
+ public function percentile_ranks($name)
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * cardinality aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Cardinality
+ */
+ public function cardinality($name)
+ {
+ return new Cardinality($name);
+ }
+
+ /**
+ * geo bounds aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-geobounds-aggregation.html
+ *
+ * @param string $name
+ */
+ public function geo_bounds($name)
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * top hits aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return TopHits
+ */
+ public function top_hits($name)
+ {
+ return new TopHits($name);
+ }
+
+ /**
+ * scripted metric aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html
+ *
+ * @param string $name
+ * @param string|null $initScript
+ * @param string|null $mapScript
+ * @param string|null $combineScript
+ * @param string|null $reduceScript
+ *
+ * @return ScriptedMetric
+ */
+ public function scripted_metric($name, $initScript = null, $mapScript = null, $combineScript = null, $reduceScript = null)
+ {
+ return new ScriptedMetric($name, $initScript, $mapScript, $combineScript, $reduceScript);
+ }
+
+ /**
+ * global aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-global-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return GlobalAggregation
+ */
+ public function global_agg($name)
+ {
+ return new GlobalAggregation($name);
+ }
+
+ /**
+ * filter aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html
+ *
+ * @param string $name
+ * @param AbstractFilter $filter
+ *
+ * @return FilterAggregation
+ */
+ public function filter($name, AbstractFilter $filter = null)
+ {
+ return new FilterAggregation($name, $filter);
+ }
+
+ /**
+ * filters aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Filters
+ */
+ public function filters($name)
+ {
+ return new Filters($name);
+ }
+
+ /**
+ * missing aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-missing-aggregation.html
+ *
+ * @param string $name
+ * @param string $field
+ *
+ * @return Missing
+ */
+ public function missing($name, $field)
+ {
+ return new Missing($name, $field);
+ }
+
+ /**
+ * nested aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-nested-aggregation.html
+ *
+ * @param string $name
+ * @param string $path the nested path for this aggregation
+ *
+ * @return Nested
+ */
+ public function nested($name, $path)
+ {
+ return new Nested($name, $path);
+ }
+
+ /**
+ * reverse nested aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-reverse-nested-aggregation.html
+ *
+ * @param string $name The name of this aggregation
+ * @param string $path Optional path to the nested object for this aggregation. Defaults to the root of the main document.
+ *
+ * @return ReverseNested
+ */
+ public function reverse_nested($name, $path = null)
+ {
+ return new ReverseNested($name);
+ }
+
+ /**
+ * children aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-children-aggregation.html
+ *
+ * @param string $name
+ */
+ public function children($name)
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * terms aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Terms
+ */
+ public function terms($name)
+ {
+ return new Terms($name);
+ }
+
+ /**
+ * significant terms aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return SignificantTerms
+ */
+ public function significant_terms($name)
+ {
+ return new SignificantTerms($name);
+ }
+
+ /**
+ * range aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return Range
+ */
+ public function range($name)
+ {
+ return new Range($name);
+ }
+
+ /**
+ * date range aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html
+ *
+ * @param string $name
+ *
+ * @return DateRange
+ */
+ public function date_range($name)
+ {
+ return new DateRange($name);
+ }
+
+ /**
+ * ipv4 range aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-iprange-aggregation.html
+ *
+ * @param string $name
+ * @param string $field
+ *
+ * @return IpRange
+ */
+ public function ipv4_range($name, $field)
+ {
+ return new IpRange($name, $field);
+ }
+
+ /**
+ * histogram aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-histogram-aggregation.html
+ *
+ * @param string $name the name of this aggregation
+ * @param string $field the name of the field on which to perform the aggregation
+ * @param int $interval the interval by which documents will be bucketed
+ *
+ * @return Histogram
+ */
+ public function histogram($name, $field, $interval)
+ {
+ return new Histogram($name, $field, $interval);
+ }
+
+ /**
+ * date histogram aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html
+ *
+ * @param string $name the name of this aggregation
+ * @param string $field the name of the field on which to perform the aggregation
+ * @param int $interval the interval by which documents will be bucketed
+ *
+ * @return DateHistogram
+ */
+ public function date_histogram($name, $field, $interval)
+ {
+ return new DateHistogram($name, $field, $interval);
+ }
+
+ /**
+ * geo distance aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geodistance-aggregation.html
+ *
+ * @param string $name the name if this aggregation
+ * @param string $field the field on which to perform this aggregation
+ * @param string|array $origin the point from which distances will be calculated
+ *
+ * @return GeoDistance
+ */
+ public function geo_distance($name, $field, $origin)
+ {
+ return new GeoDistance($name, $field, $origin);
+ }
+
+ /**
+ * geohash grid aggregation.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html
+ *
+ * @param string $name the name of this aggregation
+ * @param string $field the field on which to perform this aggregation
+ *
+ * @return GeohashGrid
+ */
+ public function geohash_grid($name, $field)
+ {
+ return new GeohashGrid($name, $field);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Filter.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Filter.php
new file mode 100644
index 00000000..1c41239f
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Filter.php
@@ -0,0 +1,480 @@
+<?php
+namespace Elastica\QueryBuilder\DSL;
+
+use Elastica\Filter\AbstractFilter;
+use Elastica\Filter\BoolAnd;
+use Elastica\Filter\BoolFilter;
+use Elastica\Filter\BoolNot;
+use Elastica\Filter\BoolOr;
+use Elastica\Filter\Exists;
+use Elastica\Filter\GeoBoundingBox;
+use Elastica\Filter\GeoDistance;
+use Elastica\Filter\GeoDistanceRange;
+use Elastica\Filter\GeohashCell;
+use Elastica\Filter\GeoPolygon;
+use Elastica\Filter\GeoShapePreIndexed;
+use Elastica\Filter\GeoShapeProvided;
+use Elastica\Filter\HasChild;
+use Elastica\Filter\HasParent;
+use Elastica\Filter\Ids;
+use Elastica\Filter\Indices;
+use Elastica\Filter\Limit;
+use Elastica\Filter\MatchAll;
+use Elastica\Filter\Missing;
+use Elastica\Filter\Nested;
+use Elastica\Filter\NumericRange;
+use Elastica\Filter\Prefix;
+use Elastica\Filter\Query as QueryFilter;
+use Elastica\Filter\Range;
+use Elastica\Filter\Regexp;
+use Elastica\Filter\Script;
+use Elastica\Filter\Term;
+use Elastica\Filter\Terms;
+use Elastica\Filter\Type;
+use Elastica\Query\AbstractQuery;
+use Elastica\QueryBuilder\DSL;
+
+/**
+ * elasticsearch filter DSL.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filters.html
+ */
+class Filter implements DSL
+{
+ /**
+ * must return type for QueryBuilder usage.
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return self::TYPE_FILTER;
+ }
+
+ /**
+ * and filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-and-filter.html
+ *
+ * @param AbstractFilter[] $filters
+ *
+ * @return BoolAnd
+ */
+ public function bool_and(array $filters = array())
+ {
+ return new BoolAnd($filters);
+ }
+
+ /**
+ * bool filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html
+ *
+ * @return \Elastica\Filter\Bool
+ */
+ public function bool()
+ {
+ return new BoolFilter();
+ }
+
+ /**
+ * exists filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-filter.html
+ *
+ * @param string $field
+ *
+ * @return Exists
+ */
+ public function exists($field)
+ {
+ return new Exists($field);
+ }
+
+ /**
+ * geo bounding box filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-bounding-box-filter.html
+ *
+ * @param string $key
+ * @param array $coordinates
+ *
+ * @return GeoBoundingBox
+ */
+ public function geo_bounding_box($key, array $coordinates)
+ {
+ return new GeoBoundingBox($key, $coordinates);
+ }
+
+ /**
+ * geo distance filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-filter.html
+ *
+ * @param string $key Key
+ * @param array|string $location Location as array or geohash: array('lat' => 48.86, 'lon' => 2.35) OR 'drm3btev3e86'
+ * @param string $distance Distance
+ *
+ * @return GeoDistance
+ */
+ public function geo_distance($key, $location, $distance)
+ {
+ return new GeoDistance($key, $location, $distance);
+ }
+
+ /**
+ * geo distance rangefilter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-range-filter.html
+ *
+ * @param string $key
+ * @param array|string $location
+ * @param array $ranges
+ *
+ * @return GeoDistanceRange
+ */
+ public function geo_distance_range($key, $location, array $ranges = array())
+ {
+ return new GeoDistanceRange($key, $location, $ranges);
+ }
+
+ /**
+ * geo polygon filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-polygon-filter.html
+ *
+ * @param string $key Key
+ * @param array $points Points making up polygon
+ *
+ * @return GeoPolygon
+ */
+ public function geo_polygon($key, array $points)
+ {
+ return new GeoPolygon($key, $points);
+ }
+
+ /**
+ * provided geo shape filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html#_provided_shape_definition
+ *
+ * @param string $path
+ * @param array $coordinates
+ * @param string $shapeType
+ *
+ * @return GeoShapeProvided
+ */
+ public function geo_shape_provided($path, array $coordinates, $shapeType = GeoShapeProvided::TYPE_ENVELOPE)
+ {
+ return new GeoShapeProvided($path, $coordinates, $shapeType);
+ }
+
+ /**
+ * pre indexed geo shape filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html#_pre_indexed_shape
+ *
+ * @param string $path The path/field of the shape searched
+ * @param string $indexedId Id of the pre-indexed shape
+ * @param string $indexedType Type of the pre-indexed shape
+ * @param string $indexedIndex Index of the pre-indexed shape
+ * @param string $indexedPath Path of the pre-indexed shape
+ *
+ * @return GeoShapePreIndexed
+ */
+ public function geo_shape_pre_indexed($path, $indexedId, $indexedType, $indexedIndex, $indexedPath)
+ {
+ return new GeoShapePreIndexed($path, $indexedId, $indexedType, $indexedIndex, $indexedPath);
+ }
+
+ /**
+ * geohash cell filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geohash-cell-filter.html
+ *
+ * @param string $key The field on which to filter
+ * @param array|string $location Location as coordinates array or geohash string ['lat' => 40.3, 'lon' => 45.2]
+ * @param int|string $precision length of geohash prefix or distance (3, or "50m")
+ * @param bool $neighbors If true, filters cells next to the given cell.
+ *
+ * @return GeohashCell
+ */
+ public function geohash_cell($key, $location, $precision = -1, $neighbors = false)
+ {
+ return new GeohashCell($key, $location, $precision, $neighbors);
+ }
+
+ /**
+ * has child filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-child-filter.html
+ *
+ * @param AbstractQuery|AbstractFilter $query
+ * @param string $type
+ *
+ * @return HasChild
+ */
+ public function has_child($query, $type = null)
+ {
+ return new HasChild($query, $type);
+ }
+
+ /**
+ * has parent filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-parent-filter.html
+ *
+ * @param AbstractQuery|AbstractFilter $query
+ * @param string $type
+ *
+ * @return HasParent
+ */
+ public function has_parent($query, $type)
+ {
+ return new HasParent($query, $type);
+ }
+
+ /**
+ * ids filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-filter.html
+ *
+ * @param string|\Elastica\Type $type
+ * @param array $ids
+ *
+ * @return Ids
+ */
+ public function ids($type = null, array $ids = array())
+ {
+ return new Ids($type, $ids);
+ }
+
+ /**
+ * indices filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-indices-filter.html
+ *
+ * @param AbstractFilter $filter filter which will be applied to docs in the specified indices
+ * @param string[] $indices
+ *
+ * @return Indices
+ */
+ public function indices(AbstractFilter $filter, array $indices)
+ {
+ return new Indices($filter, $indices);
+ }
+
+ /**
+ * limit filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-limit-filter.html
+ *
+ * @param int $limit Limit
+ *
+ * @return Limit
+ */
+ public function limit($limit)
+ {
+ return new Limit($limit);
+ }
+
+ /**
+ * match all filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-all-filter.html
+ *
+ * @return MatchAll
+ */
+ public function match_all()
+ {
+ return new MatchAll();
+ }
+
+ /**
+ * missing filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-missing-filter.html
+ *
+ * @param string $field
+ *
+ * @return Missing
+ */
+ public function missing($field = '')
+ {
+ return new Missing($field);
+ }
+
+ /**
+ * nested filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-filter.html
+ *
+ * @return Nested
+ */
+ public function nested()
+ {
+ return new Nested();
+ }
+
+ /**
+ * not filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-not-filter.html
+ *
+ * @param AbstractFilter $filter
+ *
+ * @return BoolNot
+ */
+ public function bool_not(AbstractFilter $filter)
+ {
+ return new BoolNot($filter);
+ }
+
+ /**
+ * numeric range filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-numeric-range-filter.html
+ *
+ * @param string $fieldName Field name
+ * @param array $args Field arguments
+ *
+ * @return NumericRange
+ */
+ public function numeric_range($fieldName = '', array $args = array())
+ {
+ return new NumericRange($fieldName, $args);
+ }
+
+ /**
+ * or filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-or-filter.html
+ *
+ * @param AbstractFilter[] $filters
+ *
+ * @return BoolOr
+ */
+ public function bool_or(array $filters = array())
+ {
+ return new BoolOr($filters);
+ }
+
+ /**
+ * prefix filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-filter.html
+ *
+ * @param string $field
+ * @param string $prefix
+ *
+ * @return Prefix
+ */
+ public function prefix($field = '', $prefix = '')
+ {
+ return new Prefix($field, $prefix);
+ }
+
+ /**
+ * query filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-filter.html
+ *
+ * @param array|AbstractQuery $query
+ *
+ * @return QueryFilter
+ */
+ public function query($query = null)
+ {
+ return new QueryFilter($query);
+ }
+
+ /**
+ * range filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-filter.html
+ *
+ * @param string $fieldName
+ * @param array $args
+ *
+ * @return Range
+ */
+ public function range($fieldName = '', array $args = array())
+ {
+ return new Range($fieldName, $args);
+ }
+
+ /**
+ * regexp filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-filter.html
+ *
+ * @param string $field Field name
+ * @param string $regexp Regular expression
+ * @param array $options Regular expression options
+ *
+ * @return Regexp
+ */
+ public function regexp($field = '', $regexp = '', $options = array())
+ {
+ return new Regexp($field, $regexp, $options);
+ }
+
+ /**
+ * script filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-filter.html
+ *
+ * @param array|string|\Elastica\Script $script
+ *
+ * @return Script
+ */
+ public function script($script = null)
+ {
+ return new Script($script);
+ }
+
+ /**
+ * term filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-filter.html
+ *
+ * @param array $term
+ *
+ * @return Term
+ */
+ public function term(array $term = array())
+ {
+ return new Term($term);
+ }
+
+ /**
+ * terms filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html
+ *
+ * @param string $key
+ * @param array $terms
+ *
+ * @return Terms
+ */
+ public function terms($key = '', array $terms = array())
+ {
+ return new Terms($key, $terms);
+ }
+
+ /**
+ * type filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-type-filter.html
+ *
+ * @param string $type
+ *
+ * @return Type
+ */
+ public function type($type = null)
+ {
+ return new Type($type);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Query.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Query.php
new file mode 100644
index 00000000..7d1aca68
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Query.php
@@ -0,0 +1,586 @@
+<?php
+namespace Elastica\QueryBuilder\DSL;
+
+use Elastica\Exception\NotImplementedException;
+use Elastica\Filter\AbstractFilter;
+use Elastica\Query\AbstractQuery;
+use Elastica\Query\BoolQuery;
+use Elastica\Query\Boosting;
+use Elastica\Query\Common;
+use Elastica\Query\ConstantScore;
+use Elastica\Query\DisMax;
+use Elastica\Query\Filtered;
+use Elastica\Query\FunctionScore;
+use Elastica\Query\Fuzzy;
+use Elastica\Query\FuzzyLikeThis;
+use Elastica\Query\HasChild;
+use Elastica\Query\HasParent;
+use Elastica\Query\Ids;
+use Elastica\Query\Match;
+use Elastica\Query\MatchAll;
+use Elastica\Query\MoreLikeThis;
+use Elastica\Query\MultiMatch;
+use Elastica\Query\Nested;
+use Elastica\Query\Prefix;
+use Elastica\Query\QueryString;
+use Elastica\Query\Range;
+use Elastica\Query\Regexp;
+use Elastica\Query\SimpleQueryString;
+use Elastica\Query\Term;
+use Elastica\Query\Terms;
+use Elastica\Query\TopChildren;
+use Elastica\Query\Wildcard;
+use Elastica\QueryBuilder\DSL;
+
+/**
+ * elasticsearch query DSL.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-queries.html
+ */
+class Query implements DSL
+{
+ /**
+ * must return type for QueryBuilder usage.
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return self::TYPE_QUERY;
+ }
+
+ /**
+ * match query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html
+ *
+ * @param string $field
+ * @param mixed $values
+ *
+ * @return Match
+ */
+ public function match($field = null, $values = null)
+ {
+ return new Match($field, $values);
+ }
+
+ /**
+ * multi match query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html
+ *
+ * @return \Elastica\Query\MultiMatch
+ */
+ public function multi_match()
+ {
+ return new MultiMatch();
+ }
+
+ /**
+ * bool query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
+ *
+ * @return \Elastica\Query\BoolQuery
+ */
+ public function bool()
+ {
+ return new BoolQuery();
+ }
+
+ /**
+ * boosting query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
+ *
+ * @return Boosting
+ */
+ public function boosting()
+ {
+ return new Boosting();
+ }
+
+ /**
+ * common terms query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-common-terms-query.html
+ *
+ * @param string $field
+ * @param string $query
+ * @param float $cutoffFrequency percentage in decimal form (.001 == 0.1%)
+ *
+ * @return Common
+ */
+ public function common_terms($field, $query, $cutoffFrequency)
+ {
+ return new Common($field, $query, $cutoffFrequency);
+ }
+
+ /**
+ * custom filters score query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-custom-filters-score-query.html
+ */
+ public function custom_filters_score()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * custom score query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-custom-score-query.html
+ */
+ public function custom_score()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * custom boost factor query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-custom-boost-factor-query.html
+ */
+ public function custom_boost_factor()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * constant score query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-constant-score-query.html
+ *
+ * @param null|\Elastica\Filter\AbstractFilter|array $filter
+ *
+ * @return ConstantScore
+ */
+ public function constant_score($filter = null)
+ {
+ return new ConstantScore($filter);
+ }
+
+ /**
+ * dis max query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html
+ *
+ * @return DisMax
+ */
+ public function dis_max()
+ {
+ return new DisMax();
+ }
+
+ /**
+ * field query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-field-query.html
+ */
+ public function field()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * filtered query.
+ *
+ * @param AbstractFilter $filter
+ * @param AbstractQuery $query
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html
+ *
+ * @return Filtered
+ */
+ public function filtered(AbstractQuery $query = null, AbstractFilter $filter = null)
+ {
+ return new Filtered($query, $filter);
+ }
+
+ /**
+ * fuzzy like this query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-flt-query.html
+ *
+ * @return FuzzyLikeThis
+ */
+ public function fuzzy_like_this()
+ {
+ return new FuzzyLikeThis();
+ }
+
+ /**
+ * fuzzy like this field query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-flt-field-query.html
+ */
+ public function fuzzy_like_this_field()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * function score query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
+ *
+ * @return FunctionScore
+ */
+ public function function_score()
+ {
+ return new FunctionScore();
+ }
+
+ /**
+ * fuzzy query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html
+ *
+ * @param string $fieldName Field name
+ * @param string $value String to search for
+ *
+ * @return Fuzzy
+ */
+ public function fuzzy($fieldName = null, $value = null)
+ {
+ return new Fuzzy($fieldName, $value);
+ }
+
+ /**
+ * geo shape query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-query.html
+ */
+ public function geo_shape()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * has child query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-child-query.html
+ *
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ * @param string $type Parent document type
+ *
+ * @return HasChild
+ */
+ public function has_child($query, $type = null)
+ {
+ return new HasChild($query, $type);
+ }
+
+ /**
+ * has parent query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-parent-query.html
+ *
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
+ * @param string $type Parent document type
+ *
+ * @return HasParent
+ */
+ public function has_parent($query, $type)
+ {
+ return new HasParent($query, $type);
+ }
+
+ /**
+ * ids query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html
+ *
+ * @param array|string|\Elastica\Type $type
+ * @param array $ids
+ *
+ * @return Ids
+ */
+ public function ids($type = null, array $ids = array())
+ {
+ return new Ids($type, $ids);
+ }
+
+ /**
+ * indices query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-indices-query.html
+ */
+ public function indices()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * match all query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-all-query.html
+ *
+ * @return MatchAll
+ */
+ public function match_all()
+ {
+ return new MatchAll();
+ }
+
+ /**
+ * more like this query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html
+ *
+ * @return MoreLikeThis
+ */
+ public function more_like_this()
+ {
+ return new MoreLikeThis();
+ }
+
+ /**
+ * more_like_this_field query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.4/query-dsl-mlt-field-query.html
+ * @deprecated More Like This Field query is deprecated as of ES 1.4 and will be removed in ES 2.0
+ */
+ public function more_like_this_field()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * nested query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html
+ *
+ * @return Nested
+ */
+ public function nested()
+ {
+ return new Nested();
+ }
+
+ /**
+ * prefix query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html
+ *
+ * @param array $prefix Prefix array
+ *
+ * @return Prefix
+ */
+ public function prefix(array $prefix = array())
+ {
+ return new Prefix($prefix);
+ }
+
+ /**
+ * query string query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
+ *
+ * @param string $queryString OPTIONAL Query string for object
+ *
+ * @return QueryString
+ */
+ public function query_string($queryString = '')
+ {
+ return new QueryString($queryString);
+ }
+
+ /**
+ * simple_query_string query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html
+ *
+ * @param string $query
+ * @param array $fields
+ *
+ * @return SimpleQueryString
+ */
+ public function simple_query_string($query, array $fields = array())
+ {
+ return new SimpleQueryString($query, $fields);
+ }
+
+ /**
+ * range query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html
+ *
+ * @param string $fieldName
+ * @param array $args
+ *
+ * @return Range
+ */
+ public function range($fieldName = null, array $args = array())
+ {
+ return new Range($fieldName, $args);
+ }
+
+ /**
+ * regexp query.
+ *
+ * @param string $key
+ * @param string $value
+ * @param float $boost
+ *
+ * @return Regexp
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html
+ */
+ public function regexp($key = '', $value = null, $boost = 1.0)
+ {
+ return new Regexp($key, $value, $boost);
+ }
+
+ /**
+ * span first query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-first-query.html
+ */
+ public function span_first()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * span multi term query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-multi-term-query.html
+ */
+ public function span_multi_term()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * span near query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-near-query.html
+ */
+ public function span_near()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * span not query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-not-query.html
+ */
+ public function span_not()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * span or query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-or-query.html
+ */
+ public function span_or()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * span term query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-term-query.html
+ */
+ public function span_term()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * term query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html
+ *
+ * @param array $term
+ *
+ * @return Term
+ */
+ public function term(array $term = array())
+ {
+ return new Term($term);
+ }
+
+ /**
+ * terms query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
+ *
+ * @param string $key
+ * @param array $terms
+ *
+ * @return Terms
+ */
+ public function terms($key = '', array $terms = array())
+ {
+ return new Terms($key, $terms);
+ }
+
+ /**
+ * top children query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-top-children-query.html
+ *
+ * @param string|AbstractQuery|\Elastica\Query $query
+ * @param string $type
+ *
+ * @return TopChildren
+ */
+ public function top_children($query, $type = null)
+ {
+ return new TopChildren($query, $type);
+ }
+
+ /**
+ * wildcard query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html
+ *
+ * @param string $key OPTIONAL Wildcard key
+ * @param string $value OPTIONAL Wildcard value
+ * @param float $boost OPTIONAL Boost value (default = 1)
+ *
+ * @return Wildcard
+ */
+ public function wildcard($key = '', $value = null, $boost = 1.0)
+ {
+ return new Wildcard($key, $value, $boost);
+ }
+
+ /**
+ * text query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-text-query.html
+ */
+ public function text()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * minimum should match query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
+ */
+ public function minimum_should_match()
+ {
+ throw new NotImplementedException();
+ }
+
+ /**
+ * template query.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-template-query.html
+ */
+ public function template()
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Suggest.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Suggest.php
new file mode 100644
index 00000000..9a54ccde
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/DSL/Suggest.php
@@ -0,0 +1,83 @@
+<?php
+namespace Elastica\QueryBuilder\DSL;
+
+use Elastica\Exception\NotImplementedException;
+use Elastica\QueryBuilder\DSL;
+use Elastica\Suggest\Completion;
+use Elastica\Suggest\Phrase;
+use Elastica\Suggest\Term;
+
+/**
+ * elasticsearch suggesters DSL.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html
+ */
+class Suggest implements DSL
+{
+ /**
+ * must return type for QueryBuilder usage.
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return self::TYPE_SUGGEST;
+ }
+
+ /**
+ * term suggester.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-term.html
+ *
+ * @param $name
+ * @param $field
+ *
+ * @return Term
+ */
+ public function term($name, $field)
+ {
+ return new Term($name, $field);
+ }
+
+ /**
+ * phrase suggester.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html
+ *
+ * @param $name
+ * @param $field
+ *
+ * @return Phrase
+ */
+ public function phrase($name, $field)
+ {
+ return new Phrase($name, $field);
+ }
+
+ /**
+ * completion suggester.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html
+ *
+ * @param string $name
+ * @param string $field
+ *
+ * @return Completion
+ */
+ public function completion($name, $field)
+ {
+ return new Completion($name, $field);
+ }
+
+ /**
+ * context suggester.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html
+ */
+ public function context()
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Facade.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Facade.php
new file mode 100644
index 00000000..b0f6da82
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Facade.php
@@ -0,0 +1,64 @@
+<?php
+namespace Elastica\QueryBuilder;
+
+use Elastica\Exception\QueryBuilderException;
+
+/**
+ * Facade for a specific DSL object.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ **/
+class Facade
+{
+ /**
+ * @var DSL
+ */
+ private $_dsl;
+
+ /**
+ * @var Version
+ */
+ private $_version;
+
+ /**
+ * Constructor.
+ *
+ * @param DSL $dsl
+ * @param Version $version
+ */
+ public function __construct(DSL $dsl, Version $version)
+ {
+ $this->_dsl = $dsl;
+ $this->_version = $version;
+ }
+
+ /**
+ * Executes DSL methods.
+ *
+ * @param string $name
+ * @param array $arguments
+ *
+ * @throws QueryBuilderException
+ *
+ * @return mixed
+ */
+ public function __call($name, array $arguments)
+ {
+ // defined check
+ if (false === method_exists($this->_dsl, $name)) {
+ throw new QueryBuilderException(
+ 'undefined '.$this->_dsl->getType().' "'.$name.'"'
+ );
+ }
+
+ // version support check
+ if (false === $this->_version->supports($name, $this->_dsl->getType())) {
+ $reflection = new \ReflectionClass($this->_version);
+ throw new QueryBuilderException(
+ $this->_dsl->getType().' "'.$name.'" in '.$reflection->getShortName().' not supported'
+ );
+ }
+
+ return call_user_func_array(array($this->_dsl, $name), $arguments);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version.php
new file mode 100644
index 00000000..5230600d
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version.php
@@ -0,0 +1,101 @@
+<?php
+namespace Elastica\QueryBuilder;
+
+/**
+ * Abstract Version class.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+abstract class Version
+{
+ /**
+ * supported query methods.
+ *
+ * @var string[]
+ */
+ protected $queries = array();
+
+ /**
+ * supported filter methods.
+ *
+ * @var string[]
+ */
+ protected $filters = array();
+
+ /**
+ * supported aggregation methods.
+ *
+ * @var string[]
+ */
+ protected $aggregations = array();
+
+ /**
+ * supported $suggester methods.
+ *
+ * @var string[]
+ */
+ protected $suggesters = array();
+
+ /**
+ * returns true if $name is supported, false otherwise.
+ *
+ * @param string $name
+ * @param $type
+ *
+ * @return bool
+ */
+ public function supports($name, $type)
+ {
+ switch ($type) {
+ case DSL::TYPE_QUERY:
+ $supports = in_array($name, $this->queries);
+ break;
+ case DSL::TYPE_FILTER:
+ $supports = in_array($name, $this->filters);
+ break;
+ case DSL::TYPE_AGGREGATION:
+ $supports = in_array($name, $this->aggregations);
+ break;
+ case DSL::TYPE_SUGGEST:
+ $supports = in_array($name, $this->suggesters);
+ break;
+ default:
+ // disables version check in Facade for custom DSL objects
+ $supports = true;
+ }
+
+ return $supports;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getAggregations()
+ {
+ return $this->aggregations;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getFilters()
+ {
+ return $this->filters;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getQueries()
+ {
+ return $this->queries;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getSuggesters()
+ {
+ return $this->suggesters;
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version090.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version090.php
new file mode 100644
index 00000000..193ba852
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version090.php
@@ -0,0 +1,97 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+use Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 0.9 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/0.90/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version090 extends Version
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'custom_filters_score',
+ 'custom_score',
+ 'custom_boost_factor',
+ 'constant_score',
+ 'dis_max',
+ 'field',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'text',
+ 'minimum_should_match',
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'numeric_range',
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version100.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version100.php
new file mode 100644
index 00000000..66a5c9cd
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version100.php
@@ -0,0 +1,123 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+use Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.0 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.x/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version100 extends Version
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'constant_score',
+ 'dis_max',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'minimum_should_match',
+
+ // removed in 1.0.0
+ // 'text'
+ // 'field'
+ // 'custom_filters_score'
+ // 'custom_score'
+ // 'custom_boost_factor'
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+
+ // removed in 1.0.0
+ // 'numeric_range'
+ );
+
+ protected $aggregations = array(
+ 'min',
+ 'max',
+ 'sum',
+ 'avg',
+ 'stats',
+ 'extended_stats',
+ 'value_count',
+ 'global_agg', // original: global
+ 'filter',
+ 'missing',
+ 'nested',
+ 'terms',
+ 'range',
+ 'date_range',
+ 'ipv4_range',
+ 'histogram',
+ 'date_histogram',
+ 'geo_distance',
+ 'geohash_grid',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version110.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version110.php
new file mode 100644
index 00000000..b6465e76
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version110.php
@@ -0,0 +1,131 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+use Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.1 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.x/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version110 extends Version
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'constant_score',
+ 'dis_max',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'minimum_should_match',
+
+ // removed in 1.0.0
+ // 'text'
+ // 'field'
+ // 'custom_filters_score'
+ // 'custom_score'
+ // 'custom_boost_factor'
+
+ // new in 1.1.0
+ 'template',
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+
+ // removed in 1.0.0
+ // 'numeric_range'
+ );
+
+ protected $aggregations = array(
+ 'min',
+ 'max',
+ 'sum',
+ 'avg',
+ 'stats',
+ 'extended_stats',
+ 'value_count',
+ 'global_agg', // original: global
+ 'filter',
+ 'missing',
+ 'nested',
+ 'terms',
+ 'range',
+ 'date_range',
+ 'ipv4_range',
+ 'histogram',
+ 'date_histogram',
+ 'geo_distance',
+ 'geohash_grid',
+
+ // new in 1.1.0
+ 'percentiles',
+ 'cardinality',
+ 'significant_terms',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version120.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version120.php
new file mode 100644
index 00000000..f74e3bdc
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version120.php
@@ -0,0 +1,137 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+use Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.2 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.x/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version120 extends Version
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'constant_score',
+ 'dis_max',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'minimum_should_match',
+
+ // removed in 1.0.0
+ // 'text'
+ // 'field'
+ // 'custom_filters_score'
+ // 'custom_score'
+ // 'custom_boost_factor'
+
+ // new in 1.1.0
+ 'template',
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+
+ // removed in 1.0.0
+ // 'numeric_range'
+ );
+
+ protected $aggregations = array(
+ 'min',
+ 'max',
+ 'sum',
+ 'avg',
+ 'stats',
+ 'extended_stats',
+ 'value_count',
+ 'global_agg', // original: global
+ 'filter',
+ 'missing',
+ 'nested',
+ 'terms',
+ 'range',
+ 'date_range',
+ 'ipv4_range',
+ 'histogram',
+ 'date_histogram',
+ 'geo_distance',
+ 'geohash_grid',
+
+ // new in 1.1.0
+ 'percentiles',
+ 'cardinality',
+ 'significant_terms',
+
+ // new in 1.2.0
+ 'reverse_nested',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+
+ // new in 1.2.0
+ 'context',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version130.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version130.php
new file mode 100644
index 00000000..ad52e3e7
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version130.php
@@ -0,0 +1,142 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+use Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.3 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.3/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version130 extends Version
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'constant_score',
+ 'dis_max',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'minimum_should_match',
+
+ // removed in 1.0.0
+ // 'text'
+ // 'field'
+ // 'custom_filters_score'
+ // 'custom_score'
+ // 'custom_boost_factor'
+
+ // new in 1.1.0
+ 'template',
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+
+ // removed in 1.0.0
+ // 'numeric_range'
+ );
+
+ protected $aggregations = array(
+ 'min',
+ 'max',
+ 'sum',
+ 'avg',
+ 'stats',
+ 'extended_stats',
+ 'value_count',
+ 'global_agg', // original: global
+ 'filter',
+ 'missing',
+ 'nested',
+ 'terms',
+ 'range',
+ 'date_range',
+ 'ipv4_range',
+ 'histogram',
+ 'date_histogram',
+ 'geo_distance',
+ 'geohash_grid',
+
+ // new in 1.1.0
+ 'percentiles',
+ 'cardinality',
+ 'significant_terms',
+
+ // new in 1.2.0
+ 'reverse_nested',
+
+ // new in 1.3.0
+ 'percentile_ranks',
+ 'geo_bounds',
+ 'top_hits',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+
+ // new in 1.2.0
+ 'context',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version140.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version140.php
new file mode 100644
index 00000000..7b5d73e3
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version140.php
@@ -0,0 +1,145 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.4 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.4/index.html
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
+ */
+class Version140 extends Version130
+{
+ protected $queries = array(
+ 'match',
+ 'multi_match',
+ 'bool',
+ 'boosting',
+ 'common_terms',
+ 'constant_score',
+ 'dis_max',
+ 'filtered',
+ 'fuzzy_like_this',
+ 'fuzzy_like_this_field',
+ 'function_score',
+ 'fuzzy',
+ 'geo_shape',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'match_all',
+ 'more_like_this',
+ 'more_like_this_field',
+ 'nested',
+ 'prefix',
+ 'query_string',
+ 'simple_query_string',
+ 'range',
+ 'regexp',
+ 'span_first',
+ 'span_multi_term',
+ 'span_near',
+ 'span_not',
+ 'span_or',
+ 'span_term',
+ 'term',
+ 'terms',
+ 'top_children',
+ 'wildcard',
+ 'minimum_should_match',
+
+ // removed in 1.0.0
+ // 'text'
+ // 'field'
+ // 'custom_filters_score'
+ // 'custom_score'
+ // 'custom_boost_factor'
+
+ // new in 1.1.0
+ 'template',
+ );
+
+ protected $filters = array(
+ 'bool_and', // original: bool
+ 'bool',
+ 'exists',
+ 'geo_bounding_box',
+ 'geo_distance',
+ 'geo_distance_range',
+ 'geo_polygon',
+ 'geo_shape_provided', // original: geo_shape
+ 'geo_shape_pre_indexed', // original: geo_shape
+ 'geohash_cell',
+ 'has_child',
+ 'has_parent',
+ 'ids',
+ 'indices',
+ 'limit',
+ 'match_all',
+ 'missing',
+ 'nested',
+ 'bool_not', // original: not
+ 'bool_or', // original: or
+ 'prefix',
+ 'query',
+ 'range',
+ 'regexp',
+ 'script',
+ 'term',
+ 'terms',
+ 'type',
+
+ // removed in 1.0.0
+ // 'numeric_range'
+ );
+
+ protected $aggregations = array(
+ 'min',
+ 'max',
+ 'sum',
+ 'avg',
+ 'stats',
+ 'extended_stats',
+ 'value_count',
+ 'global_agg', // original: global
+ 'filter',
+ 'missing',
+ 'nested',
+ 'terms',
+ 'range',
+ 'date_range',
+ 'ipv4_range',
+ 'histogram',
+ 'date_histogram',
+ 'geo_distance',
+ 'geohash_grid',
+
+ // new in 1.1.0
+ 'percentiles',
+ 'cardinality',
+ 'significant_terms',
+
+ // new in 1.2.0
+ 'reverse_nested',
+
+ // new in 1.3.0
+ 'percentile_ranks',
+ 'geo_bounds',
+ 'top_hits',
+
+ // new in 1.4.0
+ 'scripted_metric',
+ 'filters',
+ 'children',
+ );
+
+ protected $suggesters = array(
+ 'term',
+ 'phrase',
+ 'completion',
+
+ // new in 1.2.0
+ 'context',
+ );
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version150.php b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version150.php
new file mode 100644
index 00000000..fcb5e087
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/QueryBuilder/Version/Version150.php
@@ -0,0 +1,14 @@
+<?php
+namespace Elastica\QueryBuilder\Version;
+
+/**
+ * elasticsearch 1.5 DSL.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/1.5/index.html
+ *
+ * @author Igor Denisenko <im.denisenko@yahoo.com>
+ */
+class Version150 extends Version140
+{
+ // nothing was added nor removed
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Request.php b/vendor/ruflin/elastica/lib/Elastica/Request.php
index 6c6298be..ab26ff09 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Request.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Request.php
@@ -1,15 +1,11 @@
<?php
-
namespace Elastica;
use Elastica\Exception\InvalidException;
-use Elastica\JSON;
/**
- * Elastica Request object
+ * Elastica Request object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Request extends Param
@@ -26,13 +22,14 @@ class Request extends Param
protected $_connection;
/**
- * Construct
+ * Construct.
*
- * @param string $path Request path
- * @param string $method OPTIONAL Request method (use const's) (default = self::GET)
- * @param array $data OPTIONAL Data array
- * @param array $query OPTIONAL Query params
+ * @param string $path Request path
+ * @param string $method OPTIONAL Request method (use const's) (default = self::GET)
+ * @param array $data OPTIONAL Data array
+ * @param array $query OPTIONAL Query params
* @param Connection $connection
+ *
* @return \Elastica\Request OPTIONAL Connection object
*/
public function __construct($path, $method = self::GET, $data = array(), array $query = array(), Connection $connection = null)
@@ -48,10 +45,11 @@ class Request extends Param
}
/**
- * Sets the request method. Use one of the for consts
+ * Sets the request method. Use one of the for consts.
+ *
+ * @param string $method Request method
*
- * @param string $method Request method
- * @return \Elastica\Request Current object
+ * @return $this
*/
public function setMethod($method)
{
@@ -59,7 +57,7 @@ class Request extends Param
}
/**
- * Get request method
+ * Get request method.
*
* @return string Request method
*/
@@ -69,10 +67,11 @@ class Request extends Param
}
/**
- * Sets the request data
+ * Sets the request data.
*
- * @param array $data Request data
- * @return \Elastica\Request
+ * @param array $data Request data
+ *
+ * @return $this
*/
public function setData($data)
{
@@ -80,7 +79,7 @@ class Request extends Param
}
/**
- * Return request data
+ * Return request data.
*
* @return array Request data
*/
@@ -90,10 +89,11 @@ class Request extends Param
}
/**
- * Sets the request path
+ * Sets the request path.
+ *
+ * @param string $path Request path
*
- * @param string $path Request path
- * @return \Elastica\Request Current object
+ * @return $this
*/
public function setPath($path)
{
@@ -101,7 +101,7 @@ class Request extends Param
}
/**
- * Return request path
+ * Return request path.
*
* @return string Request path
*/
@@ -111,7 +111,7 @@ class Request extends Param
}
/**
- * Return query params
+ * Return query params.
*
* @return array Query params
*/
@@ -121,8 +121,9 @@ class Request extends Param
}
/**
- * @param array $query
- * @return \Elastica\Request
+ * @param array $query
+ *
+ * @return $this
*/
public function setQuery(array $query = array())
{
@@ -130,8 +131,9 @@ class Request extends Param
}
/**
- * @param \Elastica\Connection $connection
- * @return \Elastica\Request
+ * @param \Elastica\Connection $connection
+ *
+ * @return $this
*/
public function setConnection(Connection $connection)
{
@@ -141,9 +143,10 @@ class Request extends Param
}
/**
- * Return Connection Object
+ * Return Connection Object.
+ *
+ * @throws Exception\InvalidException If no valid connection was setted
*
- * @throws Exception\InvalidException
* @return \Elastica\Connection
*/
public function getConnection()
@@ -156,7 +159,7 @@ class Request extends Param
}
/**
- * Sends request to server
+ * Sends request to server.
*
* @return \Elastica\Response Response object
*/
@@ -177,11 +180,12 @@ class Request extends Param
if ($this->_connection) {
$data['connection'] = $this->_connection->getParams();
}
+
return $data;
}
/**
- * Converts request to curl request format
+ * Converts request to curl request format.
*
* @return string
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php b/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php
index cb6c7cce..0839424d 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Rescore/AbstractRescore.php
@@ -1,20 +1,19 @@
<?php
-
namespace Elastica\Rescore;
+
use Elastica\Param;
/**
* Abstract rescore object. Should be extended by all rescorers.
*
- * @category Xodoa
- * @package Elastica
* @author Jason Hu <mjhu91@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/rescore/
+ *
+ * @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
+ /**
+ * Overridden to return rescore as name.
*
* @return string name
*/
@@ -24,13 +23,14 @@ abstract class AbstractRescore extends Param
}
/**
- * Sets window_size
+ * Sets window_size.
*
* @param int $size
- * @return \Elastica\Rescore
+ *
+ * @return $this
*/
public function setWindowSize($size)
{
return $this->setParam('window_size', $size);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php b/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php
index 5041f3ed..3b0a1071 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Rescore/Query.php
@@ -1,21 +1,19 @@
<?php
-
namespace Elastica\Rescore;
use Elastica\Query as BaseQuery;
/**
- * Query Rescore
+ * Query Rescore.
*
- * @category Xodoa
- * @package Elastica
* @author Jason Hu <mjhu91@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/api/search/rescore/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-rescore.html
*/
class Query extends AbstractRescore
{
/**
- * Constructor
+ * Constructor.
*
* @param string|\Elastica\Query\AbstractQuery $rescoreQuery
* @param string|\Elastica\Query\AbstractQuery $query
@@ -28,7 +26,7 @@ class Query extends AbstractRescore
/**
* Override default implementation so params are in the format
- * expected by elasticsearch
+ * expected by elasticsearch.
*
* @return array Rescore array
*/
@@ -44,10 +42,11 @@ class Query extends AbstractRescore
}
/**
- * Sets rescoreQuery object
+ * Sets rescoreQuery object.
+ *
+ * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
*
- * @param string|\Elastica\Query|\Elastica\Query\AbstractQuery $query
- * @return \Elastica\Query\Rescore
+ * @return $this
*/
public function setRescoreQuery($rescoreQuery)
{
@@ -61,10 +60,11 @@ class Query extends AbstractRescore
}
/**
- * Sets query_weight
+ * Sets query_weight.
*
* @param float $weight
- * @return \Elastica\Query\Rescore
+ *
+ * @return $this
*/
public function setQueryWeight($weight)
{
@@ -75,10 +75,11 @@ class Query extends AbstractRescore
}
/**
- * Sets rescore_query_weight
+ * Sets rescore_query_weight.
*
* @param float $size
- * @return \Elastica\Query\Rescore
+ *
+ * @return $this
*/
public function setRescoreQueryWeight($weight)
{
@@ -87,4 +88,4 @@ class Query extends AbstractRescore
return $this->setParam('query', $query);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Response.php b/vendor/ruflin/elastica/lib/Elastica/Response.php
index 5c0ef24d..b537fe80 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Response.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Response.php
@@ -1,69 +1,65 @@
<?php
-
namespace Elastica;
use Elastica\Exception\JSONParseException;
use Elastica\Exception\NotFoundException;
-use Elastica\JSON;
/**
- * Elastica Response object
+ * Elastica Response object.
*
* Stores query time, and result array -> is given to result set, returned by ...
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Response
{
/**
- * Query time
+ * Query time.
*
* @var float Query time
*/
protected $_queryTime = null;
/**
- * Response string (json)
+ * Response string (json).
*
* @var string Response
*/
protected $_responseString = '';
/**
- * Error
+ * Error.
*
- * @var boolean Error
+ * @var bool Error
*/
protected $_error = false;
/**
- * Transfer info
+ * Transfer info.
*
* @var array transfer info
*/
protected $_transferInfo = array();
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * HTTP response status code
+ * HTTP response status code.
*
* @var int
*/
protected $_status = null;
/**
- * Construct
+ * Construct.
*
* @param string|array $responseString Response string (json)
- * @param int $responseStatus http status code
+ * @param int $responseStatus http status code
*/
public function __construct($responseString, $responseStatus = null)
{
@@ -76,7 +72,7 @@ class Response
}
/**
- * Error message
+ * Error message.
*
* @return string Error message
*/
@@ -93,7 +89,7 @@ class Response
}
/**
- * True if response has error
+ * True if response has error.
*
* @return bool True if response has error
*/
@@ -109,7 +105,7 @@ class Response
}
/**
- * True if response has failed shards
+ * True if response has failed shards.
*
* @return bool True if response has failed shards
*/
@@ -125,7 +121,7 @@ class Response
}
/**
- * Checks if the query returned ok
+ * Checks if the query returned ok.
*
* @return bool True if ok
*/
@@ -138,11 +134,19 @@ class Response
if ($data['status'] >= 200 && $data['status'] <= 300) {
return true;
}
+
return false;
}
+
if (isset($data['items'])) {
+ if (isset($data['errors']) && true === $data['errors']) {
+ return false;
+ }
+
foreach ($data['items'] as $item) {
- if (false == $item['index']['ok']) {
+ if (isset($item['index']['ok']) && false == $item['index']['ok']) {
+ return false;
+ } elseif (isset($item['index']['status']) && ($item['index']['status'] < 200 || $item['index']['status'] >= 300)) {
return false;
}
}
@@ -166,9 +170,8 @@ class Response
return $this->_status;
}
-
/**
- * Response data array
+ * Response data array.
*
* @return array Response data array
*/
@@ -214,17 +217,19 @@ class Response
* Sets the transfer info of the curl request. This function is called
* from the \Elastica\Client::_callService .
*
- * @param array $transferInfo The curl transfer information.
- * @return \Elastica\Response Current object
+ * @param array $transferInfo The curl transfer information.
+ *
+ * @return $this
*/
public function setTransferInfo(array $transferInfo)
{
$this->_transferInfo = $transferInfo;
+
return $this;
}
/**
- * This is only available if DEBUG constant is set to true
+ * Returns query execution time.
*
* @return float Query time
*/
@@ -234,10 +239,11 @@ class Response
}
/**
- * Sets the query time
+ * Sets the query time.
+ *
+ * @param float $queryTime Query time
*
- * @param float $queryTime Query time
- * @return \Elastica\Response Current object
+ * @return $this
*/
public function setQueryTime($queryTime)
{
@@ -247,26 +253,28 @@ class Response
}
/**
- * Time request took
+ * Time request took.
*
* @throws \Elastica\Exception\NotFoundException
- * @return int Time request took
+ *
+ * @return int Time request took
*/
public function getEngineTime()
{
$data = $this->getData();
if (!isset($data['took'])) {
- throw new NotFoundException("Unable to find the field [took]from the response");
+ throw new NotFoundException('Unable to find the field [took]from the response');
}
return $data['took'];
}
/**
- * Get the _shard statistics for the response
+ * Get the _shard statistics for the response.
*
* @throws \Elastica\Exception\NotFoundException
+ *
* @return array
*/
public function getShardsStatistics()
@@ -274,16 +282,17 @@ class Response
$data = $this->getData();
if (!isset($data['_shards'])) {
- throw new NotFoundException("Unable to find the field [_shards] from the response");
+ throw new NotFoundException('Unable to find the field [_shards] from the response');
}
return $data['_shards'];
}
/**
- * Get the _scroll value for the response
+ * Get the _scroll value for the response.
*
* @throws \Elastica\Exception\NotFoundException
+ *
* @return string
*/
public function getScrollId()
@@ -291,7 +300,7 @@ class Response
$data = $this->getData();
if (!isset($data['_scroll_id'])) {
- throw new NotFoundException("Unable to find the field [_scroll_id] from the response");
+ throw new NotFoundException('Unable to find the field [_scroll_id] from the response');
}
return $data['_scroll_id'];
diff --git a/vendor/ruflin/elastica/lib/Elastica/Result.php b/vendor/ruflin/elastica/lib/Elastica/Result.php
index e8aa8e3d..6b3c68f2 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Result.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Result.php
@@ -1,27 +1,24 @@
<?php
-
namespace Elastica;
/**
- * Elastica result item
+ * Elastica result item.
*
* Stores all information from a result
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Result
{
/**
- * Hit array
+ * Hit array.
*
* @var array Hit array
*/
protected $_hit = array();
/**
- * Constructs a single results object
+ * Constructs a single results object.
*
* @param array $hit Hit data
*/
@@ -31,14 +28,15 @@ class Result
}
/**
- * Returns a param from the result hit array
+ * Returns a param from the result hit array.
*
* This function can be used to retrieve all data for which a specific
* function doesn't exist.
* If the param does not exist, an empty array is returned
*
- * @param string $name Param name
- * @return array Result data
+ * @param string $name Param name
+ *
+ * @return array Result data
*/
public function getParam($name)
{
@@ -50,18 +48,19 @@ class Result
}
/**
- * Test if a param from the result hit is set
+ * Test if a param from the result hit is set.
+ *
+ * @param string $name Param name to test
*
- * @param string $name Param name to test
- * @return boolean True if the param is set, false otherwise
+ * @return bool True if the param is set, false otherwise
*/
public function hasParam($name)
{
return isset($this->_hit[$name]);
- }
-
+ }
+
/**
- * Returns the hit id
+ * Returns the hit id.
*
* @return string Hit id
*/
@@ -71,7 +70,7 @@ class Result
}
/**
- * Returns the type of the result
+ * Returns the type of the result.
*
* @return string Result type
*/
@@ -81,7 +80,7 @@ class Result
}
/**
- * Returns list of fields
+ * Returns list of fields.
*
* @return array Fields list
*/
@@ -91,17 +90,17 @@ class Result
}
/**
- * Returns whether result has fields
- *
+ * Returns whether result has fields.
+ *
* @return bool
*/
public function hasFields()
{
return $this->hasParam('fields');
- }
-
+ }
+
/**
- * Returns the index name of the result
+ * Returns the index name of the result.
*
* @return string Index name
*/
@@ -111,7 +110,7 @@ class Result
}
/**
- * Returns the score of the result
+ * Returns the score of the result.
*
* @return float Result score
*/
@@ -121,7 +120,7 @@ class Result
}
/**
- * Returns the raw hit array
+ * Returns the raw hit array.
*
* @return array Hit array
*/
@@ -131,7 +130,7 @@ class Result
}
/**
- * Returns the version information from the hit
+ * Returns the version information from the hit.
*
* @return string|int Document version
*/
@@ -141,7 +140,7 @@ class Result
}
/**
- * Returns result data
+ * Returns result data.
*
* Checks for partial result data with getFields, falls back to getSource
*
@@ -157,7 +156,7 @@ class Result
}
/**
- * Returns the result source
+ * Returns the result source.
*
* @return array Source data array
*/
@@ -167,7 +166,7 @@ class Result
}
/**
- * Returns result data
+ * Returns result data.
*
* @return array Result data array
*/
@@ -187,12 +186,13 @@ class Result
}
/**
- * Magic function to directly access keys inside the result
+ * Magic function to directly access keys inside the result.
*
* Returns null if key does not exist
*
- * @param string $key Key name
- * @return mixed Key value
+ * @param string $key Key name
+ *
+ * @return mixed Key value
*/
public function __get($key)
{
@@ -200,11 +200,12 @@ class Result
return array_key_exists($key, $source) ? $source[$key] : null;
}
-
+
/**
- * Magic function to support isset() calls
+ * Magic function to support isset() calls.
*
* @param string $key Key name
+ *
* @return bool
*/
public function __isset($key)
diff --git a/vendor/ruflin/elastica/lib/Elastica/ResultSet.php b/vendor/ruflin/elastica/lib/Elastica/ResultSet.php
index 3bb94fb0..ae4141b9 100644
--- a/vendor/ruflin/elastica/lib/Elastica/ResultSet.php
+++ b/vendor/ruflin/elastica/lib/Elastica/ResultSet.php
@@ -1,43 +1,48 @@
<?php
-
namespace Elastica;
+
use Elastica\Exception\InvalidException;
/**
- * Elastica result set
+ * Elastica result set.
*
* List of all hits that are returned for a search on elasticsearch
* Result set implements iterator
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class ResultSet implements \Iterator, \Countable, \ArrayAccess
{
/**
- * Results
+ * Class for the static create method to use.
+ *
+ * @var string
+ */
+ protected static $_class = 'Elastica\\ResultSet';
+
+ /**
+ * Results.
*
* @var array Results
*/
protected $_results = array();
/**
- * Current position
+ * Current position.
*
* @var int Current position
*/
protected $_position = 0;
/**
- * Response
+ * Response.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Query
+ * Query.
*
* @var \Elastica\Query Query object
*/
@@ -49,7 +54,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
protected $_took = 0;
/**
- * @var boolean
+ * @var bool
*/
protected $_timedOut = false;
@@ -64,7 +69,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
protected $_maxScore = 0;
/**
- * Constructs ResultSet object
+ * Constructs ResultSet object.
*
* @param \Elastica\Response $response Response object
* @param \Elastica\Query $query Query object
@@ -77,7 +82,33 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Loads all data into the results object (initialisation)
+ * Creates a new ResultSet object. Can be configured to return a different
+ * implementation of the ResultSet class.
+ *
+ * @param Response $response
+ * @param Query $query
+ *
+ * @return ResultSet
+ */
+ public static function create(Response $response, Query $query)
+ {
+ $class = static::$_class;
+
+ return new $class($response, $query);
+ }
+
+ /**
+ * Sets the class to be used for the static create method.
+ *
+ * @param string $class
+ */
+ public static function setClass($class)
+ {
+ static::$_class = $class;
+ }
+
+ /**
+ * Loads all data into the results object (initialisation).
*
* @param \Elastica\Response $response Response object
*/
@@ -97,7 +128,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns all results
+ * Returns all results.
*
* @return Result[] Results
*/
@@ -107,29 +138,35 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns true if the response contains suggestion results; false otherwise
+ * Returns true if the response contains suggestion results; false otherwise.
+ *
* @return bool
*/
- public function hasSuggests(){
+ public function hasSuggests()
+ {
$data = $this->_response->getData();
+
return isset($data['suggest']);
}
/**
- * Return all suggests
- *
- * @return array suggest results
- */
- public function getSuggests()
+ * Return all suggests.
+ *
+ * @return array suggest results
+ */
+ public function getSuggests()
{
$data = $this->_response->getData();
+
return isset($data['suggest']) ? $data['suggest'] : array();
}
/**
- * Returns whether facets exist
+ * Returns whether facets exist.
*
- * @return boolean Facet existence
+ * @return bool Facet existence
+ *
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
public function hasFacets()
{
@@ -139,9 +176,9 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns whether aggregations exist
+ * Returns whether aggregations exist.
*
- * @return boolean Aggregation existence
+ * @return bool Aggregation existence
*/
public function hasAggregations()
{
@@ -151,7 +188,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns all aggregation results
+ * Returns all aggregation results.
*
* @return array
*/
@@ -163,10 +200,13 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Retrieve a specific aggregation from this result set
+ * Retrieve a specific aggregation from this result set.
+ *
* @param string $name the name of the desired aggregation
- * @return array
+ *
* @throws Exception\InvalidException if an aggregation by the given name cannot be found
+ *
+ * @return array
*/
public function getAggregation($name)
{
@@ -179,9 +219,11 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns all facets results
+ * Returns all facets results.
*
* @return array Facet results
+ *
+ * @deprecated Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.
*/
public function getFacets()
{
@@ -191,7 +233,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns the total number of found hits
+ * Returns the total number of found hits.
*
* @return int Total hits
*/
@@ -201,7 +243,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns the max score of the results found
+ * Returns the max score of the results found.
*
* @return float Max Score
*/
@@ -211,27 +253,27 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns the total number of ms for this search to complete
- *
- * @return int Total time
- */
+ * Returns the total number of ms for this search to complete.
+ *
+ * @return int Total time
+ */
public function getTotalTime()
{
return (int) $this->_took;
}
/**
- * Returns true iff the query has timed out
- *
- * @return bool Timed out
- */
+ * Returns true iff the query has timed out.
+ *
+ * @return bool Timed out
+ */
public function hasTimedOut()
{
return (bool) $this->_timedOut;
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -249,7 +291,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns size of current set
+ * Returns size of current set.
*
* @return int Size of set
*/
@@ -259,7 +301,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns size of current suggests
+ * Returns size of current suggests.
*
* @return int Size of suggests
*/
@@ -269,7 +311,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns the current object of the set
+ * Returns the current object of the set.
*
* @return \Elastica\Result|bool Set object or false if not valid (no more entries)
*/
@@ -283,7 +325,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Sets pointer (current) to the next item of the set
+ * Sets pointer (current) to the next item of the set.
*/
public function next()
{
@@ -293,7 +335,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Returns the position of the current entry
+ * Returns the position of the current entry.
*
* @return int Current position
*/
@@ -303,7 +345,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Check if an object exists at the current position
+ * Check if an object exists at the current position.
*
* @return bool True if object exists
*/
@@ -313,7 +355,7 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Resets position to 0, restarts iterator
+ * Resets position to 0, restarts iterator.
*/
public function rewind()
{
@@ -321,11 +363,13 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Whether a offset exists
+ * Whether a offset exists.
+ *
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
*
- * @param integer $offset
- * @return boolean true on success or false on failure.
+ * @param int $offset
+ *
+ * @return bool true on success or false on failure.
*/
public function offsetExists($offset)
{
@@ -333,48 +377,54 @@ class ResultSet implements \Iterator, \Countable, \ArrayAccess
}
/**
- * Offset to retrieve
+ * Offset to retrieve.
+ *
* @link http://php.net/manual/en/arrayaccess.offsetget.php
*
- * @param integer $offset
- * @throws Exception\InvalidException
- * @return Result|null
+ * @param int $offset
+ *
+ * @throws Exception\InvalidException If offset doesn't exist
+ *
+ * @return Result|null
*/
public function offsetGet($offset)
{
if ($this->offsetExists($offset)) {
return $this->_results[$offset];
} else {
- throw new InvalidException("Offset does not exist.");
+ throw new InvalidException('Offset does not exist.');
}
}
/**
- * Offset to set
+ * Offset to set.
+ *
* @link http://php.net/manual/en/arrayaccess.offsetset.php
*
- * @param integer $offset
- * @param Result $value
- * @throws Exception\InvalidException
+ * @param int $offset
+ * @param Result $value
+ *
+ * @throws Exception\InvalidException
*/
public function offsetSet($offset, $value)
{
if (!($value instanceof Result)) {
- throw new InvalidException("ResultSet is a collection of Result only.");
+ throw new InvalidException('ResultSet is a collection of Result only.');
}
if (!isset($this->_results[$offset])) {
- throw new InvalidException("Offset does not exist.");
+ throw new InvalidException('Offset does not exist.');
}
$this->_results[$offset] = $value;
}
/**
- * Offset to unset
+ * Offset to unset.
+ *
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
*
- * @param integer $offset
+ * @param int $offset
*/
public function offsetUnset($offset)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/ScanAndScroll.php b/vendor/ruflin/elastica/lib/Elastica/ScanAndScroll.php
index c83054e8..6713856e 100644
--- a/vendor/ruflin/elastica/lib/Elastica/ScanAndScroll.php
+++ b/vendor/ruflin/elastica/lib/Elastica/ScanAndScroll.php
@@ -1,150 +1,80 @@
<?php
-
namespace Elastica;
/**
- * scan and scroll object
+ * Scan and Scroll Iterator.
*
- * @category Xodoa
- * @package Elastica
* @author Manuel Andreo Garcia <andreo.garcia@gmail.com>
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/guide/current/scan-scroll.html
*/
-class ScanAndScroll implements \Iterator {
-
- /**
- * time value parameter
- *
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html
- * @var string
- */
- public $expiryTime;
-
+class ScanAndScroll extends Scroll
+{
/**
* @var int
*/
public $sizePerShard;
/**
- * @var Search
- */
- protected $_search;
-
- /**
- * @var null|string
- */
- protected $_nextScrollId = null;
-
- /**
- * @var null|string
- */
- protected $_lastScrollId = null;
-
- /**
- * @var null|ResultSet
- */
- protected $_currentResultSet = null;
-
- /**
- * Constructs scroll iterator object
+ * Constructor.
*
* @param Search $search
* @param string $expiryTime
- * @param int $sizePerShard
+ * @param int $sizePerShard
*/
- public function __construct(Search $search, $expiryTime = '1m', $sizePerShard = 1000) {
- $this->_search = $search;
- $this->expiryTime = $expiryTime;
+ public function __construct(Search $search, $expiryTime = '1m', $sizePerShard = 1000)
+ {
$this->sizePerShard = $sizePerShard;
- }
- /**
- * Return the current result set
- *
- * @link http://php.net/manual/en/iterator.current.php
- * @return ResultSet
- */
- public function current() {
- return $this->_currentResultSet;
+ parent::__construct($search, $expiryTime);
}
/**
- * Perform next scroll search
+ * Initial scan search.
*
- * @link http://php.net/manual/en/iterator.next.php
- * @return void
- */
- public function next() {
- $this->_scroll();
- }
-
- /**
- * Return the scroll id of current scroll request
- *
- * @link http://php.net/manual/en/iterator.key.php
- * @return string
- */
- public function key() {
- return $this->_lastScrollId;
- }
-
- /**
- * Returns true if current result set contains one hit
- *
- * @link http://php.net/manual/en/iterator.valid.php
- * @return boolean
- */
- public function valid() {
- return
- $this->_nextScrollId !== null
- && $this->_currentResultSet !== null
- && $this->_currentResultSet->count() > 0;
- }
-
- /**
- * Start the initial scan search
* @link http://php.net/manual/en/iterator.rewind.php
- * @throws \Elastica\Exception\InvalidException
- * @return void
*/
- public function rewind() {
- $this->_search->getQuery()->setSize($this->sizePerShard);
+ public function rewind()
+ {
+ // reset state
+ $this->_nextScrollId = null;
+ $this->_options = array(null, null, null, null);
- $this->_search->setOption(Search::OPTION_SEARCH_TYPE, Search::OPTION_SEARCH_TYPE_SCAN);
- $this->_search->setOption(Search::OPTION_SCROLL, $this->expiryTime);
+ $this->_saveOptions();
// initial scan request
+ $this->_search->getQuery()->setSize($this->sizePerShard);
+ $this->_search->setOption(Search::OPTION_SCROLL, $this->expiryTime);
+ $this->_search->setOption(Search::OPTION_SCROLL_ID, null);
+ $this->_search->setOption(Search::OPTION_SEARCH_TYPE, Search::OPTION_SEARCH_TYPE_SCAN);
$this->_setScrollId($this->_search->search());
- // trigger first scroll request
- $this->_scroll();
+ $this->_revertOptions();
+
+ // first scroll request
+ $this->next();
}
/**
- * Perform next scroll search
- * @throws \Elastica\Exception\InvalidException
- * @return void
+ * Save all search options manipulated by Scroll.
*/
- protected function _scroll() {
- $this->_search->setOption(Search::OPTION_SEARCH_TYPE, Search::OPTION_SEARCH_TYPE_SCROLL);
- $this->_search->setOption(Search::OPTION_SCROLL_ID, $this->_nextScrollId);
+ protected function _saveOptions()
+ {
+ $query = $this->_search->getQuery();
+ if ($query->hasParam('size')) {
+ $this->_options[3] = $query->getParam('size');
+ }
- $resultSet = $this->_search->search();
- $this->_currentResultSet = $resultSet;
- $this->_setScrollId($resultSet);
+ parent::_saveOptions();
}
/**
- * Save last scroll id and extract the new one if possible
- * @param ResultSet $resultSet
+ * Revert search options to previously saved state.
*/
- protected function _setScrollId(ResultSet $resultSet) {
- $this->_lastScrollId = $this->_nextScrollId;
+ protected function _revertOptions()
+ {
+ $this->_search->getQuery()->setSize($this->_options[3]);
- $this->_nextScrollId = null;
- if($resultSet->getResponse()->isOk()) {
- $this->_nextScrollId = $resultSet->getResponse()->getScrollId();
- }
+ parent::_revertOptions();
}
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Script.php b/vendor/ruflin/elastica/lib/Elastica/Script.php
index 99d9a6aa..6df3d583 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Script.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Script.php
@@ -1,21 +1,19 @@
<?php
-
namespace Elastica;
use Elastica\Exception\InvalidException;
/**
- * Script objects, containing script internals
+ * Script objects, containing script internals.
*
- * @category Xodoa
- * @package Elastica
* @author avasilenko <aa.vasilenko@gmail.com>
- * @link http://www.elasticsearch.org/guide/reference/modules/scripting.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
*/
class Script extends AbstractUpdateAction
{
- const LANG_MVEL = 'mvel';
- const LANG_JS = 'js';
+ const LANG_MVEL = 'mvel';
+ const LANG_JS = 'js';
const LANG_GROOVY = 'groovy';
const LANG_PYTHON = 'python';
const LANG_NATIVE = 'native';
@@ -38,9 +36,11 @@ class Script extends AbstractUpdateAction
public function __construct($script, array $params = null, $lang = null, $id = null)
{
$this->setScript($script);
+
if ($params) {
$this->setParams($params);
}
+
if ($lang) {
$this->setLang($lang);
}
@@ -52,10 +52,14 @@ class Script extends AbstractUpdateAction
/**
* @param string $lang
+ *
+ * @return $this
*/
public function setLang($lang)
{
$this->_lang = $lang;
+
+ return $this;
}
/**
@@ -68,10 +72,14 @@ class Script extends AbstractUpdateAction
/**
* @param string $script
+ *
+ * @return $this
*/
public function setScript($script)
{
$this->_script = $script;
+
+ return $this;
}
/**
@@ -83,9 +91,11 @@ class Script extends AbstractUpdateAction
}
/**
- * @param string|array|\Elastica\Script $data
+ * @param string|array|\Elastica\Script $data
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Script
+ *
+ * @return self
*/
public static function create($data)
{
@@ -103,9 +113,11 @@ class Script extends AbstractUpdateAction
}
/**
- * @param array $data
+ * @param array $data
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Script
+ *
+ * @return self
*/
protected static function _createFromArray(array $data)
{
@@ -118,6 +130,7 @@ class Script extends AbstractUpdateAction
if (isset($data['lang'])) {
$script->setLang($data['lang']);
}
+
if (isset($data['params'])) {
if (!is_array($data['params'])) {
throw new InvalidException("\$data['params'] should be array");
@@ -136,9 +149,11 @@ class Script extends AbstractUpdateAction
$array = array(
'script' => $this->_script,
);
+
if (!empty($this->_params)) {
$array['params'] = $this->_params;
}
+
if ($this->_lang) {
$array['lang'] = $this->_lang;
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/ScriptFields.php b/vendor/ruflin/elastica/lib/Elastica/ScriptFields.php
index 0a8b4871..41b5b913 100644
--- a/vendor/ruflin/elastica/lib/Elastica/ScriptFields.php
+++ b/vendor/ruflin/elastica/lib/Elastica/ScriptFields.php
@@ -1,15 +1,14 @@
<?php
-
namespace Elastica;
+
use Elastica\Exception\InvalidException;
/**
- * Container for scripts as fields
+ * Container for scripts as fields.
*
- * @category Xodoa
- * @package Elastica
* @author Sebastien Lavoie <github@lavoie.sl>
- * @link http://www.elasticsearch.org/guide/reference/api/search/script-fields.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html
*/
class ScriptFields extends Param
{
@@ -24,10 +23,12 @@ class ScriptFields extends Param
}
/**
- * @param string $name Name of the Script field
- * @param \Elastica\Script $script
+ * @param string $name Name of the Script field
+ * @param \Elastica\Script $script
+ *
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\ScriptFields
+ *
+ * @return $this
*/
public function addScript($name, Script $script)
{
@@ -40,8 +41,9 @@ class ScriptFields extends Param
}
/**
- * @param \Elastica\Script[]|array $scripts Associative array of string => Elastica\Script
- * @return \Elastica\ScriptFields
+ * @param \Elastica\Script[]|array $scripts Associative array of string => Elastica\Script
+ *
+ * @return $this
*/
public function setScripts(array $scripts)
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Scroll.php b/vendor/ruflin/elastica/lib/Elastica/Scroll.php
new file mode 100644
index 00000000..44fa73e9
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Scroll.php
@@ -0,0 +1,174 @@
+<?php
+namespace Elastica;
+
+/**
+ * Scroll Iterator.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@gmail.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html
+ */
+class Scroll implements \Iterator
+{
+ /**
+ * @var string
+ */
+ public $expiryTime;
+
+ /**
+ * @var Search
+ */
+ protected $_search;
+
+ /**
+ * @var null|string
+ */
+ protected $_nextScrollId = null;
+
+ /**
+ * @var null|ResultSet
+ */
+ protected $_currentResultSet = null;
+
+ /**
+ * 0: scroll<br>
+ * 1: scroll id<br>
+ * 2: search type.
+ *
+ * @var array
+ */
+ protected $_options = array(null, null, null);
+
+ /**
+ * Constructor.
+ *
+ * @param Search $search
+ * @param string $expiryTime
+ */
+ public function __construct(Search $search, $expiryTime = '1m')
+ {
+ $this->_search = $search;
+ $this->expiryTime = $expiryTime;
+ }
+
+ /**
+ * Returns current result set.
+ *
+ * @link http://php.net/manual/en/iterator.current.php
+ *
+ * @return ResultSet
+ */
+ public function current()
+ {
+ return $this->_currentResultSet;
+ }
+
+ /**
+ * Next scroll search.
+ *
+ * @link http://php.net/manual/en/iterator.next.php
+ */
+ public function next()
+ {
+ $this->_saveOptions();
+
+ $this->_search->setOption(Search::OPTION_SCROLL, $this->expiryTime);
+ $this->_search->setOption(Search::OPTION_SCROLL_ID, $this->_nextScrollId);
+ $this->_search->setOption(Search::OPTION_SEARCH_TYPE, Search::OPTION_SEARCH_TYPE_SCROLL);
+ $this->_setScrollId($this->_search->search());
+
+ $this->_revertOptions();
+ }
+
+ /**
+ * Returns scroll id.
+ *
+ * @link http://php.net/manual/en/iterator.key.php
+ *
+ * @return string
+ */
+ public function key()
+ {
+ return $this->_nextScrollId;
+ }
+
+ /**
+ * Returns true if current result set contains at least one hit.
+ *
+ * @link http://php.net/manual/en/iterator.valid.php
+ *
+ * @return bool
+ */
+ public function valid()
+ {
+ return
+ $this->_nextScrollId !== null
+ && $this->_currentResultSet !== null
+ && $this->_currentResultSet->count() > 0;
+ }
+
+ /**
+ * Initial scroll search.
+ *
+ * @link http://php.net/manual/en/iterator.rewind.php
+ */
+ public function rewind()
+ {
+ // reset state
+ $this->_nextScrollId = null;
+ $this->_options = array(null, null, null);
+
+ // initial search
+ $this->_saveOptions();
+
+ $this->_search->setOption(Search::OPTION_SCROLL, $this->expiryTime);
+ $this->_search->setOption(Search::OPTION_SCROLL_ID, null);
+ $this->_search->setOption(Search::OPTION_SEARCH_TYPE, null);
+ $this->_setScrollId($this->_search->search());
+
+ $this->_revertOptions();
+ }
+
+ /**
+ * Prepares Scroll for next request.
+ *
+ * @param ResultSet $resultSet
+ */
+ protected function _setScrollId(ResultSet $resultSet)
+ {
+ $this->_currentResultSet = $resultSet;
+
+ $this->_nextScrollId = null;
+ if ($resultSet->getResponse()->isOk()) {
+ $this->_nextScrollId = $resultSet->getResponse()->getScrollId();
+ }
+ }
+
+ /**
+ * Save all search options manipulated by Scroll.
+ */
+ protected function _saveOptions()
+ {
+ if ($this->_search->hasOption(Search::OPTION_SCROLL)) {
+ $this->_options[0] = $this->_search->getOption(Search::OPTION_SCROLL);
+ }
+
+ if ($this->_search->hasOption(Search::OPTION_SCROLL_ID)) {
+ $this->_options[1] = $this->_search->getOption(Search::OPTION_SCROLL_ID);
+ }
+
+ if ($this->_search->hasOption(Search::OPTION_SEARCH_TYPE)) {
+ $this->_options[2] = $this->_search->getOption(Search::OPTION_SEARCH_TYPE);
+ }
+ }
+
+ /**
+ * Revert search options to previously saved state.
+ */
+ protected function _revertOptions()
+ {
+ $this->_search->setOption(Search::OPTION_SCROLL, $this->_options[0]);
+ $this->_search->setOption(Search::OPTION_SCROLL_ID, $this->_options[1]);
+ $this->_search->setOption(Search::OPTION_SEARCH_TYPE, $this->_options[2]);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Search.php b/vendor/ruflin/elastica/lib/Elastica/Search.php
index 4163a1a2..7306eb75 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Search.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Search.php
@@ -1,15 +1,11 @@
<?php
-
namespace Elastica;
use Elastica\Exception\InvalidException;
-use Elastica\Suggest;
/**
- * Elastica search object
+ * Elastica search object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Search
@@ -26,6 +22,7 @@ class Search
const OPTION_SIZE = 'size';
const OPTION_SCROLL = 'scroll';
const OPTION_SCROLL_ID = 'scroll_id';
+ const OPTION_QUERY_CACHE = 'query_cache';
/*
* Search types
@@ -38,16 +35,17 @@ class Search
const OPTION_SEARCH_TYPE_QUERY_AND_FETCH = 'query_and_fetch';
const OPTION_SEARCH_TYPE_SUGGEST = 'suggest';
const OPTION_SEARCH_TYPE_SCROLL = 'scroll';
+ const OPTION_SEARCH_IGNORE_UNAVAILABLE = 'ignore_unavailable';
/**
- * Array of indices
+ * Array of indices.
*
* @var array
*/
protected $_indices = array();
/**
- * Array of types
+ * Array of types.
*
* @var array
*/
@@ -64,14 +62,14 @@ class Search
protected $_options = array();
/**
- * Client object
+ * Client object.
*
* @var \Elastica\Client
*/
protected $_client;
/**
- * Constructs search object
+ * Constructs search object.
*
* @param \Elastica\Client $client Client object
*/
@@ -81,11 +79,13 @@ class Search
}
/**
- * Adds a index to the list
+ * Adds a index to the list.
+ *
+ * @param \Elastica\Index|string $index Index object or string
*
- * @param \Elastica\Index|string $index Index object or string
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Search Current object
+ *
+ * @return $this
*/
public function addIndex($index)
{
@@ -93,20 +93,21 @@ class Search
$index = $index->getName();
}
- if (!is_string($index)) {
+ if (!is_scalar($index)) {
throw new InvalidException('Invalid param type');
}
- $this->_indices[] = $index;
+ $this->_indices[] = (string) $index;
return $this;
}
/**
- * Add array of indices at once
+ * Add array of indices at once.
*
- * @param array $indices
- * @return \Elastica\Search
+ * @param array $indices
+ *
+ * @return $this
*/
public function addIndices(array $indices = array())
{
@@ -118,11 +119,13 @@ class Search
}
/**
- * Adds a type to the current search
+ * Adds a type to the current search.
+ *
+ * @param \Elastica\Type|string $type Type name or object
*
- * @param \Elastica\Type|string $type Type name or object
- * @return \Elastica\Search Search object
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return $this
*/
public function addType($type)
{
@@ -140,10 +143,11 @@ class Search
}
/**
- * Add array of types
+ * Add array of types.
*
- * @param array $types
- * @return \Elastica\Search
+ * @param array $types
+ *
+ * @return $this
*/
public function addTypes(array $types = array())
{
@@ -155,8 +159,9 @@ class Search
}
/**
- * @param string|array|\Elastica\Query|\Elastica\Suggest|\Elastica\Query\AbstractQuery|\Elastica\Filter\AbstractFilter $query|
- * @return \Elastica\Search
+ * @param string|array|\Elastica\Query|\Elastica\Suggest|\Elastica\Query\AbstractQuery|\Elastica\Filter\AbstractFilter $query|
+ *
+ * @return $this
*/
public function setQuery($query)
{
@@ -166,9 +171,10 @@ class Search
}
/**
- * @param string $key
- * @param mixed $value
- * @return \Elastica\Search
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return $this
*/
public function setOption($key, $value)
{
@@ -180,8 +186,9 @@ class Search
}
/**
- * @param array $options
- * @return \Elastica\Search
+ * @param array $options
+ *
+ * @return $this
*/
public function setOptions(array $options)
{
@@ -195,7 +202,7 @@ class Search
}
/**
- * @return \Elastica\Search
+ * @return $this
*/
public function clearOptions()
{
@@ -205,9 +212,10 @@ class Search
}
/**
- * @param string $key
- * @param mixed $value
- * @return \Elastica\Search
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return $this
*/
public function addOption($key, $value)
{
@@ -223,7 +231,8 @@ class Search
}
/**
- * @param string $key
+ * @param string $key
+ *
* @return bool
*/
public function hasOption($key)
@@ -232,14 +241,16 @@ class Search
}
/**
- * @param string $key
- * @return mixed
+ * @param string $key
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return mixed
*/
public function getOption($key)
{
if (!$this->hasOption($key)) {
- throw new InvalidException('Option ' . $key . ' does not exist');
+ throw new InvalidException('Option '.$key.' does not exist');
}
return $this->_options[$key];
@@ -254,9 +265,11 @@ class Search
}
/**
- * @param string $key
- * @return bool
+ * @param string $key
+ *
* @throws \Elastica\Exception\InvalidException
+ *
+ * @return bool
*/
protected function _validateOption($key)
{
@@ -271,14 +284,16 @@ class Search
case self::OPTION_SCROLL:
case self::OPTION_SCROLL_ID:
case self::OPTION_SEARCH_TYPE_SUGGEST:
+ case self::OPTION_SEARCH_IGNORE_UNAVAILABLE:
+ case self::OPTION_QUERY_CACHE:
return true;
}
- throw new InvalidException('Invalid option ' . $key);
+ throw new InvalidException('Invalid option '.$key);
}
/**
- * Return client object
+ * Return client object.
*
* @return \Elastica\Client Client object
*/
@@ -288,7 +303,7 @@ class Search
}
/**
- * Return array of indices
+ * Return array of indices.
*
* @return array List of index names
*/
@@ -307,6 +322,7 @@ class Search
/**
* @param Index|string $index
+ *
* @return bool
*/
public function hasIndex($index)
@@ -319,7 +335,7 @@ class Search
}
/**
- * Return array of types
+ * Return array of types.
*
* @return array List of types
*/
@@ -338,6 +354,7 @@ class Search
/**
* @param \Elastica\Type|string $type
+ *
* @return bool
*/
public function hasType($type)
@@ -362,10 +379,11 @@ class Search
}
/**
- * Creates new search object
+ * Creates new search object.
*
- * @param \Elastica\SearchableInterface $searchObject
- * @return \Elastica\Search
+ * @param \Elastica\SearchableInterface $searchObject
+ *
+ * @return Search
*/
public static function create(SearchableInterface $searchObject)
{
@@ -373,7 +391,7 @@ class Search
}
/**
- * Combines indices and types to the search request path
+ * Combines indices and types to the search request path.
*
* @return string Search path
*/
@@ -397,19 +415,21 @@ class Search
}
if (!empty($types)) {
- $path .= '/' . implode(',', $types);
+ $path .= '/'.implode(',', $types);
}
// Add full path based on indices and types -> could be all
- return $path . '/_search';
+ return $path.'/_search';
}
/**
- * Search in the set indices, types
+ * Search in the set indices, types.
+ *
+ * @param mixed $query
+ * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
*
- * @param mixed $query
- * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
* @throws \Elastica\Exception\InvalidException
+ *
* @return \Elastica\ResultSet
*/
public function search($query = '', $options = null)
@@ -436,13 +456,13 @@ class Search
$params
);
- return new ResultSet($response, $query);
+ return ResultSet::create($response, $query);
}
/**
- *
* @param mixed $query
- * @param $fullResult (default = false) By default only the total hit count is returned. If set to true, the full ResultSet including facets is returned.
+ * @param $fullResult (default = false) By default only the total hit count is returned. If set to true, the full ResultSet including aggregations is returned.
+ *
* @return int|ResultSet
*/
public function count($query = '', $fullResult = false)
@@ -458,15 +478,16 @@ class Search
$query->toArray(),
array(self::OPTION_SEARCH_TYPE => self::OPTION_SEARCH_TYPE_COUNT)
);
- $resultSet = new ResultSet($response, $query);
+ $resultSet = ResultSet::create($response, $query);
return $fullResult ? $resultSet : $resultSet->getTotalHits();
}
/**
- * @param array|int $options
- * @param string|array|\Elastica\Query $query
- * @return \Elastica\Search
+ * @param array|int $options
+ * @param string|array|\Elastica\Query $query
+ *
+ * @return $this
*/
public function setOptionsAndQuery($options = null, $query = '')
{
@@ -493,7 +514,8 @@ class Search
/**
* @param Suggest $suggest
- * @return Search
+ *
+ * @return $this
*/
public function setSuggest(Suggest $suggest)
{
@@ -501,14 +523,31 @@ class Search
}
/**
- * Returns the ScanAndScroll Iterator
+ * Returns the Scroll Iterator.
+ *
+ * @see Elastica\Scroll
+ *
+ * @param string $expiryTime
+ *
+ * @return Scroll
+ */
+ public function scroll($expiryTime = '1m')
+ {
+ return new Scroll($this, $expiryTime);
+ }
+
+ /**
+ * Returns the ScanAndScroll Iterator.
*
* @see Elastica\ScanAndScroll
+ *
* @param string $expiryTime
- * @param int $sizePerShard
+ * @param int $sizePerShard
+ *
* @return ScanAndScroll
*/
- public function scanAndScroll($expiryTime = '1m', $sizePerShard = 1000) {
+ public function scanAndScroll($expiryTime = '1m', $sizePerShard = 1000)
+ {
return new ScanAndScroll($this, $expiryTime, $sizePerShard);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/SearchableInterface.php b/vendor/ruflin/elastica/lib/Elastica/SearchableInterface.php
index 372bcb11..abfacb85 100644
--- a/vendor/ruflin/elastica/lib/Elastica/SearchableInterface.php
+++ b/vendor/ruflin/elastica/lib/Elastica/SearchableInterface.php
@@ -1,18 +1,15 @@
<?php
-
namespace Elastica;
/**
- * Elastica searchable interface
+ * Elastica searchable interface.
*
- * @category Xodoa
- * @package Elastica
* @author Thibault Duplessis <thibault.duplessis@gmail.com>
*/
interface SearchableInterface
{
/**
- * Searches results for a query
+ * Searches results for a query.
*
* TODO: Improve sample code
* {
@@ -28,24 +25,27 @@ interface SearchableInterface
* }
* }
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return \Elastica\ResultSet ResultSet with all results inside
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return \Elastica\ResultSet ResultSet with all results inside
*/
public function search($query = '', $options = null);
/**
- * Counts results for a query
+ * Counts results for a query.
*
* If no query is set, matchall query is created
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return int number of documents matching the query
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return int number of documents matching the query
*/
public function count($query = '');
/**
* @param \Elastica\Query $query
- * @param array $options
+ * @param array $options
+ *
* @return \Elastica\Search
*/
public function createSearch($query = '', $options = null);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Snapshot.php b/vendor/ruflin/elastica/lib/Elastica/Snapshot.php
index 4b32172c..80924b79 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Snapshot.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Snapshot.php
@@ -1,14 +1,13 @@
<?php
-
namespace Elastica;
use Elastica\Exception\NotFoundException;
use Elastica\Exception\ResponseException;
/**
- * Class Snapshot
- * @package Elastica
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/modules-snapshots.html
+ * Class Snapshot.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
*/
class Snapshot
{
@@ -26,26 +25,32 @@ class Snapshot
}
/**
- * Register a snapshot repository
- * @param string $name the name of the repository
- * @param string $type the repository type ("fs" for file system)
- * @param array $settings Additional repository settings. If type "fs" is used, the "location" setting must be provided.
+ * Register a snapshot repository.
+ *
+ * @param string $name the name of the repository
+ * @param string $type the repository type ("fs" for file system)
+ * @param array $settings Additional repository settings. If type "fs" is used, the "location" setting must be provided.
+ *
* @return Response
*/
public function registerRepository($name, $type, $settings = array())
{
$data = array(
'type' => $type,
- 'settings' => $settings
+ 'settings' => $settings,
);
+
return $this->request($name, Request::PUT, $data);
}
/**
- * Retrieve a repository record by name
+ * Retrieve a repository record by name.
+ *
* @param string $name the name of the desired repository
+ *
* @throws Exception\ResponseException
* @throws Exception\NotFoundException
+ *
* @return array
*/
public function getRepository($name)
@@ -54,102 +59,118 @@ class Snapshot
$response = $this->request($name);
} catch (ResponseException $e) {
if ($e->getResponse()->getStatus() == 404) {
- throw new NotFoundException("Repository '" . $name . "' does not exist.");
+ throw new NotFoundException("Repository '".$name."' does not exist.");
}
throw $e;
}
$data = $response->getData();
+
return $data[$name];
}
/**
- * Retrieve all repository records
+ * Retrieve all repository records.
+ *
* @return array
*/
public function getAllRepositories()
{
- return $this->request("_all")->getData();
+ return $this->request('_all')->getData();
}
/**
- * Create a new snapshot
- * @param string $repository the name of the repository in which this snapshot should be stored
- * @param string $name the name of this snapshot
- * @param array $options optional settings for this snapshot
- * @param bool $waitForCompletion if true, the request will not return until the snapshot operation is complete
+ * Create a new snapshot.
+ *
+ * @param string $repository the name of the repository in which this snapshot should be stored
+ * @param string $name the name of this snapshot
+ * @param array $options optional settings for this snapshot
+ * @param bool $waitForCompletion if true, the request will not return until the snapshot operation is complete
+ *
* @return Response
*/
public function createSnapshot($repository, $name, $options = array(), $waitForCompletion = false)
{
- return $this->request($repository . '/' . $name, Request::PUT, $options, array('wait_for_completion' => $waitForCompletion));
+ return $this->request($repository.'/'.$name, Request::PUT, $options, array('wait_for_completion' => $waitForCompletion));
}
/**
- * Retrieve data regarding a specific snapshot
+ * Retrieve data regarding a specific snapshot.
+ *
* @param string $repository the name of the repository from which to retrieve the snapshot
- * @param string $name the name of the desired snapshot
+ * @param string $name the name of the desired snapshot
+ *
* @throws Exception\ResponseException
* @throws Exception\NotFoundException
+ *
* @return array
*/
public function getSnapshot($repository, $name)
{
try {
- $response = $this->request($repository . "/" . $name);
+ $response = $this->request($repository.'/'.$name);
} catch (ResponseException $e) {
if ($e->getResponse()->getStatus() == 404) {
- throw new NotFoundException("Snapshot '" . $name . "' does not exist in repository '" . $repository . "'.");
+ throw new NotFoundException("Snapshot '".$name."' does not exist in repository '".$repository."'.");
}
throw $e;
}
$data = $response->getData();
+
return $data['snapshots'][0];
}
/**
- * Retrieve data regarding all snapshots in the given repository
+ * Retrieve data regarding all snapshots in the given repository.
+ *
* @param string $repository the repository name
+ *
* @return array
*/
public function getAllSnapshots($repository)
{
- return $this->request($repository . "/_all")->getData();
+ return $this->request($repository.'/_all')->getData();
}
/**
- * Delete a snapshot
+ * Delete a snapshot.
+ *
* @param string $repository the repository in which the snapshot resides
- * @param string $name the name of the snapshot to be deleted
+ * @param string $name the name of the snapshot to be deleted
+ *
* @return Response
*/
public function deleteSnapshot($repository, $name)
{
- return $this->request($repository . "/" . $name, Request::DELETE);
+ return $this->request($repository.'/'.$name, Request::DELETE);
}
/**
- * Restore a snapshot
- * @param string $repository the name of the repository
- * @param string $name the name of the snapshot
- * @param array $options options for the restore operation
- * @param bool $waitForCompletion if true, the request will not return until the restore operation is complete
+ * Restore a snapshot.
+ *
+ * @param string $repository the name of the repository
+ * @param string $name the name of the snapshot
+ * @param array $options options for the restore operation
+ * @param bool $waitForCompletion if true, the request will not return until the restore operation is complete
+ *
* @return Response
*/
public function restoreSnapshot($repository, $name, $options = array(), $waitForCompletion = false)
{
- return $this->request($repository . "/" . $name . "/_restore", Request::POST, $options, array("wait_for_completion" => $waitForCompletion));
+ return $this->request($repository.'/'.$name.'/_restore', Request::POST, $options, array('wait_for_completion' => $waitForCompletion));
}
/**
- * Perform a snapshot request
- * @param string $path the URL
+ * Perform a snapshot request.
+ *
+ * @param string $path the URL
* @param string $method the HTTP method
- * @param array $data request body data
- * @param array $query query string parameters
+ * @param array $data request body data
+ * @param array $query query string parameters
+ *
* @return Response
*/
public function request($path, $method = Request::GET, $data = array(), array $query = array())
{
- return $this->_client->request("/_snapshot/" . $path, $method, $data, $query);
+ return $this->_client->request('/_snapshot/'.$path, $method, $data, $query);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Status.php b/vendor/ruflin/elastica/lib/Elastica/Status.php
index a747b9a5..c22a5f61 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Status.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Status.php
@@ -1,42 +1,41 @@
<?php
-
namespace Elastica;
+
use Elastica\Exception\ResponseException;
use Elastica\Index\Status as IndexStatus;
/**
- * Elastica general status
+ * Elastica general status.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-status.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-status.html
*/
class Status
{
/**
- * Contains all status infos
+ * Contains all status infos.
*
* @var \Elastica\Response Response object
*/
protected $_response = null;
/**
- * Data
+ * Data.
*
* @var array Data
*/
protected $_data = array();
/**
- * Client object
+ * Client object.
*
* @var \Elastica\Client Client object
*/
protected $_client = null;
/**
- * Constructs Status object
+ * Constructs Status object.
*
* @param \Elastica\Client $client Client object
*/
@@ -47,7 +46,7 @@ class Status
}
/**
- * Returns status data
+ * Returns status data.
*
* @return array Status data
*/
@@ -57,7 +56,7 @@ class Status
}
/**
- * Returns status objects of all indices
+ * Returns status objects of all indices.
*
* @return array|\Elastica\Index\Status[] List of Elastica\Client\Index objects
*/
@@ -73,25 +72,21 @@ class Status
}
/**
- * Returns a list of the existing index names
+ * Returns a list of the existing index names.
*
* @return array Index names list
*/
public function getIndexNames()
{
- $names = array();
- foreach ($this->_data['indices'] as $name => $data) {
- $names[] = $name;
- }
-
- return $names;
+ return array_keys($this->_data['indices']);
}
/**
- * Checks if the given index exists
+ * Checks if the given index exists.
*
- * @param string $name Index name to check
- * @return bool True if index exists
+ * @param string $name Index name to check
+ *
+ * @return bool True if index exists
*/
public function indexExists($name)
{
@@ -99,10 +94,11 @@ class Status
}
/**
- * Checks if the given alias exists
+ * Checks if the given alias exists.
+ *
+ * @param string $name Alias name
*
- * @param string $name Alias name
- * @return bool True if alias exists
+ * @return bool True if alias exists
*/
public function aliasExists($name)
{
@@ -110,16 +106,17 @@ class Status
}
/**
- * Returns an array with all indices that the given alias name points to
+ * Returns an array with all indices that the given alias name points to.
+ *
+ * @param string $alias Alias name
*
- * @param string $alias Alias name
* @return array|\Elastica\Index[] List of Elastica\Index
*/
public function getIndicesWithAlias($alias)
{
$response = null;
try {
- $response = $this->_client->request('/_alias/' . $alias);
+ $response = $this->_client->request('/_alias/'.$alias);
} catch (ResponseException $e) {
$transferInfo = $e->getResponse()->getTransferInfo();
// 404 means the index alias doesn't exist which means no indexes have it.
@@ -133,11 +130,12 @@ class Status
foreach ($response->getData() as $name => $unused) {
$indices[] = new Index($this->_client, $name);
}
+
return $indices;
}
/**
- * Returns response object
+ * Returns response object.
*
* @return \Elastica\Response Response object
*/
@@ -147,7 +145,7 @@ class Status
}
/**
- * Return shards info
+ * Return shards info.
*
* @return array Shards info
*/
@@ -157,7 +155,7 @@ class Status
}
/**
- * Refresh status object
+ * Refresh status object.
*/
public function refresh()
{
@@ -167,7 +165,7 @@ class Status
}
/**
- * Refresh serverStatus object
+ * Refresh serverStatus object.
*/
public function getServerStatus()
{
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest.php b/vendor/ruflin/elastica/lib/Elastica/Suggest.php
index dd5dbbcc..73b1ea36 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest.php
@@ -1,43 +1,44 @@
<?php
-
namespace Elastica;
-
use Elastica\Exception\NotImplementedException;
use Elastica\Suggest\AbstractSuggest;
/**
- * Class Suggest
- * @package Elastica\Suggest
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters.html
+ * Class Suggest.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html
*/
class Suggest extends Param
{
/**
* @param AbstractSuggest $suggestion
*/
- function __construct(AbstractSuggest $suggestion = NULL)
+ public function __construct(AbstractSuggest $suggestion = null)
{
if (!is_null($suggestion)) {
$this->addSuggestion($suggestion);
}
}
-
/**
- * Set the global text for this suggester
+ * Set the global text for this suggester.
+ *
* @param string $text
- * @return \Elastica\Suggest
+ *
+ * @return $this
*/
public function setGlobalText($text)
{
- return $this->setParam("text", $text);
+ return $this->setParam('text', $text);
}
/**
- * Add a suggestion to this suggest clause
+ * Add a suggestion to this suggest clause.
+ *
* @param AbstractSuggest $suggestion
- * @return \Elastica\Suggest
+ *
+ * @return $this
*/
public function addSuggestion(AbstractSuggest $suggestion)
{
@@ -46,17 +47,19 @@ class Suggest extends Param
/**
* @param Suggest|AbstractSuggest $suggestion
- * @return \Elastica\Suggest
+ *
* @throws Exception\NotImplementedException
+ *
+ * @return self
*/
public static function create($suggestion)
{
- switch(true){
- case $suggestion instanceof Suggest:
+ switch (true) {
+ case $suggestion instanceof self:
return $suggestion;
case $suggestion instanceof AbstractSuggest:
return new self($suggestion);
}
throw new NotImplementedException();
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/AbstractSuggest.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/AbstractSuggest.php
index e5f5e01c..00f21e44 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest/AbstractSuggest.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/AbstractSuggest.php
@@ -1,13 +1,10 @@
<?php
-
namespace Elastica\Suggest;
-
use Elastica\Param;
/**
- * Class AbstractSuggestion
- * @package Elastica\Suggest
+ * Class AbstractSuggestion.
*/
abstract class AbstractSuggest extends Param
{
@@ -32,45 +29,52 @@ abstract class AbstractSuggest extends Param
}
/**
- * Suggest text must be set either globally or per suggestion
+ * Suggest text must be set either globally or per suggestion.
+ *
* @param string $text
- * @return \Elastica\Suggest\AbstractSuggest
+ *
+ * @return $this
*/
public function setText($text)
{
$this->_text = $text;
+
return $this;
}
/**
* @param string $field
- * @return \Elastica\Suggest\AbstractSuggest
+ *
+ * @return $this
*/
public function setField($field)
{
- return $this->setParam("field", $field);
+ return $this->setParam('field', $field);
}
/**
* @param int $size
- * @return \Elastica\Suggest\AbstractSuggest
+ *
+ * @return $this
*/
public function setSize($size)
{
- return $this->setParam("size", $size);
+ return $this->setParam('size', $size);
}
/**
* @param int $size maximum number of suggestions to be retrieved from each shard
- * @return \Elastica\Suggest\AbstractSuggest
+ *
+ * @return $this
*/
public function setShardSize($size)
{
- return $this->setParam("shard_size", $size);
+ return $this->setParam('shard_size', $size);
}
/**
- * Retrieve the name of this suggestion
+ * Retrieve the name of this suggestion.
+ *
* @return string
*/
public function getName()
@@ -87,6 +91,7 @@ abstract class AbstractSuggest extends Param
if (isset($this->_text)) {
$array['text'] = $this->_text;
}
+
return $array;
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/AbstractCandidateGenerator.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/AbstractCandidateGenerator.php
index d9e6ac7c..6fba49db 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/AbstractCandidateGenerator.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/AbstractCandidateGenerator.php
@@ -1,11 +1,8 @@
<?php
-
namespace Elastica\Suggest\CandidateGenerator;
-
use Elastica\Param;
class AbstractCandidateGenerator extends Param
{
-
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/DirectGenerator.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/DirectGenerator.php
index 0277a5ac..54ac7649 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/DirectGenerator.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/CandidateGenerator/DirectGenerator.php
@@ -1,12 +1,10 @@
<?php
-
namespace Elastica\Suggest\CandidateGenerator;
-
/**
- * Class DirectGenerator
- * @package Elastica\Suggest\Phrase
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html#_direct_generators
+ * Class DirectGenerator.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html#_direct_generators
*/
class DirectGenerator extends AbstractCandidateGenerator
{
@@ -23,105 +21,120 @@ class DirectGenerator extends AbstractCandidateGenerator
}
/**
- * Set the field name from which to fetch candidate suggestions
+ * Set the field name from which to fetch candidate suggestions.
+ *
* @param string $field
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setField($field)
{
- return $this->setParam("field", $field);
+ return $this->setParam('field', $field);
}
/**
- * Set the maximum corrections to be returned per suggest text token
+ * Set the maximum corrections to be returned per suggest text token.
+ *
* @param int $size
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setSize($size)
{
- return $this->setParam("size", $size);
+ return $this->setParam('size', $size);
}
/**
* @param string $mode see SUGGEST_MODE_* constants for options
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setSuggestMode($mode)
{
- return $this->setParam("suggest_mode", $mode);
+ return $this->setParam('suggest_mode', $mode);
}
/**
* @param int $max can only be a value between 1 and 2. Defaults to 2.
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setMaxEdits($max)
{
- return $this->setParam("max_edits", $max);
+ return $this->setParam('max_edits', $max);
}
/**
* @param int $length defaults to 1
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setPrefixLength($length)
{
- return $this->setParam("prefix_len", $length);
+ return $this->setParam('prefix_len', $length);
}
/**
* @param int $min defaults to 4
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setMinWordLength($min)
{
- return $this->setParam("min_word_len", $min);
+ return $this->setParam('min_word_len', $min);
}
/**
* @param int $max
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setMaxInspections($max)
{
- return $this->setParam("max_inspections", $max);
+ return $this->setParam('max_inspections', $max);
}
/**
* @param float $min
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setMinDocFrequency($min)
{
- return $this->setParam("min_doc_freq", $min);
+ return $this->setParam('min_doc_freq', $min);
}
/**
* @param float $max
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setMaxTermFrequency($max)
{
- return $this->setParam("max_term_freq", $max);
+ return $this->setParam('max_term_freq', $max);
}
/**
- * Set an analyzer to be applied to the original token prior to candidate generation
+ * Set an analyzer to be applied to the original token prior to candidate generation.
+ *
* @param string $pre an analyzer
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setPreFilter($pre)
{
- return $this->setParam("pre_filter", $pre);
+ return $this->setParam('pre_filter', $pre);
}
/**
- * Set an analyzer to be applied to generated tokens before they are passed to the phrase scorer
+ * Set an analyzer to be applied to generated tokens before they are passed to the phrase scorer.
+ *
* @param string $post
- * @return DirectGenerator
+ *
+ * @return $this
*/
public function setPostFilter($post)
{
- return $this->setParam("post_filter", $post);
+ return $this->setParam('post_filter', $post);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/Completion.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/Completion.php
new file mode 100644
index 00000000..0f0b3e61
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/Completion.php
@@ -0,0 +1,26 @@
+<?php
+namespace Elastica\Suggest;
+
+/**
+ * Comletion suggester.
+ *
+ * @author Igor Denisenko <im.denisenko@yahoo.com>
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html
+ */
+class Completion extends AbstractSuggest
+{
+ /**
+ * Set fuzzy parameter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html#fuzzy
+ *
+ * @param array $fuzzy
+ *
+ * @return $this
+ */
+ public function setFuzzy(array $fuzzy)
+ {
+ return $this->setParam('fuzzy', $fuzzy);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/Phrase.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/Phrase.php
index 14630dc1..544f3678 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest/Phrase.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/Phrase.php
@@ -1,109 +1,121 @@
<?php
-
namespace Elastica\Suggest;
use Elastica\Suggest\CandidateGenerator\AbstractCandidateGenerator;
-
/**
- * Class Phrase
- * @package Elastica\Suggest
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html
+ * Class Phrase.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html
*/
class Phrase extends AbstractSuggest
{
/**
* @param string $analyzer
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
- return $this->setParam("analyzer", $analyzer);
+ return $this->setParam('analyzer', $analyzer);
}
/**
- * Set the max size of the n-grams (shingles) in the field
+ * Set the max size of the n-grams (shingles) in the field.
+ *
* @param int $size
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setGramSize($size)
{
- return $this->setParam("gram_size", $size);
+ return $this->setParam('gram_size', $size);
}
/**
- * Set the likelihood of a term being misspelled even if the term exists in the dictionary
+ * Set the likelihood of a term being misspelled even if the term exists in the dictionary.
+ *
* @param float $likelihood Defaults to 0.95, meaning 5% of the words are misspelled.
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
- public function setRealWorldErrorLikelihood($likelihood)
+ public function setRealWordErrorLikelihood($likelihood)
{
- return $this->setParam("real_world_error_likelihood", $likelihood);
+ return $this->setParam('real_word_error_likelihood', $likelihood);
}
/**
* Set the factor applied to the input phrases score to be used as a threshold for other suggestion candidates.
* Only candidates which score higher than this threshold will be included in the result.
+ *
* @param float $confidence Defaults to 1.0.
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setConfidence($confidence)
{
- return $this->setParam("confidence", $confidence);
+ return $this->setParam('confidence', $confidence);
}
/**
- * Set the maximum percentage of the terms considered to be misspellings in order to form a correction
+ * Set the maximum percentage of the terms considered to be misspellings in order to form a correction.
+ *
* @param float $max
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setMaxErrors($max)
{
- return $this->setParam("max_errors", $max);
+ return $this->setParam('max_errors', $max);
}
/**
* @param string $separator
- * @return \Elastica\Param
+ *
+ * @return $this
*/
public function setSeparator($separator)
{
- return $this->setParam("separator", $separator);
+ return $this->setParam('separator', $separator);
}
/**
- * Set suggestion highlighting
+ * Set suggestion highlighting.
+ *
* @param string $preTag
* @param string $postTag
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setHighlight($preTag, $postTag)
{
- return $this->setParam("highlight", array(
+ return $this->setParam('highlight', array(
'pre_tag' => $preTag,
- 'post_tag' => $postTag
+ 'post_tag' => $postTag,
));
}
/**
* @param float $discount
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setStupidBackoffSmoothing($discount = 0.4)
{
- return $this->setSmoothingModel("stupid_backoff", array(
- "discount" => $discount
+ return $this->setSmoothingModel('stupid_backoff', array(
+ 'discount' => $discount,
));
}
/**
* @param float $alpha
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setLaplaceSmoothing($alpha = 0.5)
{
- return $this->setSmoothingModel("laplace", array(
- "alpha" => $alpha
+ return $this->setSmoothingModel('laplace', array(
+ 'alpha' => $alpha,
));
}
@@ -111,38 +123,42 @@ class Phrase extends AbstractSuggest
* @param float $trigramLambda
* @param float $bigramLambda
* @param float $unigramLambda
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function setLinearInterpolationSmoothing($trigramLambda, $bigramLambda, $unigramLambda)
{
- return $this->setSmoothingModel("linear_interpolation", array(
- "trigram_lambda" => $trigramLambda,
- "bigram_lambda" => $bigramLambda,
- "unigram_lambda" => $unigramLambda
+ return $this->setSmoothingModel('linear_interpolation', array(
+ 'trigram_lambda' => $trigramLambda,
+ 'bigram_lambda' => $bigramLambda,
+ 'unigram_lambda' => $unigramLambda,
));
}
/**
- * @param string $model the name of the smoothing model
- * @param array $params
- * @return \Elastica\Suggest\Phrase
+ * @param string $model the name of the smoothing model
+ * @param array $params
+ *
+ * @return $this
*/
public function setSmoothingModel($model, array $params)
{
- return $this->setParam("smoothing", array(
- $model => $params
+ return $this->setParam('smoothing', array(
+ $model => $params,
));
}
/**
* @param AbstractCandidateGenerator $generator
- * @return \Elastica\Suggest\Phrase
+ *
+ * @return $this
*/
public function addCandidateGenerator(AbstractCandidateGenerator $generator)
{
$generator = $generator->toArray();
$keys = array_keys($generator);
$values = array_values($generator);
+
return $this->addParam($keys[0], $values[0]);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Suggest/Term.php b/vendor/ruflin/elastica/lib/Elastica/Suggest/Term.php
index 3fca1731..9f082873 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Suggest/Term.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Suggest/Term.php
@@ -1,12 +1,10 @@
<?php
-
namespace Elastica\Suggest;
-
/**
- * Class Term
- * @package Elastica\Suggest
- * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters-term.html
+ * Class Term.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-term.html
*/
class Term extends AbstractSuggest
{
@@ -19,97 +17,113 @@ class Term extends AbstractSuggest
/**
* @param string $analyzer
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setAnalyzer($analyzer)
{
- return $this->setParam("analyzer", $analyzer);
+ return $this->setParam('analyzer', $analyzer);
}
/**
* @param string $sort see SORT_* constants for options
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setSort($sort)
{
- return $this->setParam("sort", $sort);
+ return $this->setParam('sort', $sort);
}
/**
* @param string $mode see SUGGEST_MODE_* constants for options
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setSuggestMode($mode)
{
- return $this->setParam("suggest_mode", $mode);
+ return $this->setParam('suggest_mode', $mode);
}
/**
- * If true, suggest terms will be lower cased after text analysis
+ * If true, suggest terms will be lower cased after text analysis.
+ *
* @param bool $lowercase
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setLowercaseTerms($lowercase = true)
{
- return $this->setParam("lowercase_terms", (bool)$lowercase);
+ return $this->setParam('lowercase_terms', (bool) $lowercase);
}
/**
- * Set the maximum edit distance candidate suggestions can have in order to be considered as a suggestion
+ * Set the maximum edit distance candidate suggestions can have in order to be considered as a suggestion.
+ *
* @param int $max Either 1 or 2. Any other value will result in an error.
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setMaxEdits($max)
{
- return $this->setParam("max_edits", (int)$max);
+ return $this->setParam('max_edits', (int) $max);
}
/**
- * The number of minimum prefix characters that must match in order to be a suggestion candidate
+ * The number of minimum prefix characters that must match in order to be a suggestion candidate.
+ *
* @param int $length Defaults to 1.
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setPrefixLength($length)
{
- return $this->setParam("prefix_len", (int)$length);
+ return $this->setParam('prefix_len', (int) $length);
}
/**
* The minimum length a suggest text term must have in order to be included.
+ *
* @param int $length Defaults to 4.
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setMinWordLength($length)
{
- return $this->setParam("min_word_len", (int)$length);
+ return $this->setParam('min_word_len', (int) $length);
}
/**
* @param int $max Defaults to 5.
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setMaxInspections($max)
{
- return $this->setParam("max_inspections", $max);
+ return $this->setParam('max_inspections', $max);
}
/**
- * Set the minimum number of documents in which a suggestion should appear
+ * Set the minimum number of documents in which a suggestion should appear.
+ *
* @param int|float $min Defaults to 0. If the value is greater than 1, it must be a whole number.
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setMinDocFrequency($min)
{
- return $this->setParam("min_doc_freq", $min);
+ return $this->setParam('min_doc_freq', $min);
}
/**
- * Set the maximum number of documents in which a suggest text token can exist in order to be included
+ * Set the maximum number of documents in which a suggest text token can exist in order to be included.
+ *
* @param float $max
- * @return \Elastica\Suggest\Term
+ *
+ * @return $this
*/
public function setMaxTermFrequency($max)
{
- return $this->setParam("max_term_freq", $max);
+ return $this->setParam('max_term_freq', $max);
}
-} \ No newline at end of file
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Tool/CrossIndex.php b/vendor/ruflin/elastica/lib/Elastica/Tool/CrossIndex.php
new file mode 100644
index 00000000..89fc0532
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Tool/CrossIndex.php
@@ -0,0 +1,160 @@
+<?php
+namespace Elastica\Tool;
+
+use Elastica\Bulk;
+use Elastica\Index;
+use Elastica\Query\MatchAll;
+use Elastica\ScanAndScroll;
+use Elastica\Search;
+use Elastica\Type;
+
+/**
+ * Functions to move documents and types between indices.
+ *
+ * @author Manuel Andreo Garcia <andreo.garcia@gmail.com>
+ */
+class CrossIndex
+{
+ /**
+ * Type option.
+ *
+ * type: string | string[] | \Elastica\Type | \Elastica\Type[] | null
+ * default: null (means all types)
+ */
+ const OPTION_TYPE = 'type';
+
+ /**
+ * Query option.
+ *
+ * type: see \Elastica\Query::create()
+ * default: Elastica\Query\MatchAll
+ */
+ const OPTION_QUERY = 'query';
+
+ /**
+ * Expiry time option.
+ *
+ * type: string (see Elastica\ScanAndScroll)
+ * default: '1m'
+ */
+ const OPTION_EXPIRY_TIME = 'expiryTime';
+
+ /**
+ * Size per shard option.
+ *
+ * type: int (see Elastica\ScanAndScroll)
+ * default: 1000
+ */
+ const OPTION_SIZE_PER_SHARD = 'sizePerShard';
+
+ /**
+ * Reindex documents from an old index to a new index.
+ *
+ * @link https://www.elastic.co/guide/en/elasticsearch/guide/master/reindex.html
+ *
+ * @param \Elastica\Index $oldIndex
+ * @param \Elastica\Index $newIndex
+ * @param array $options keys: CrossIndex::OPTION_* constants
+ *
+ * @return \Elastica\Index The new index object
+ */
+ public static function reindex(
+ Index $oldIndex,
+ Index $newIndex,
+ array $options = array()
+ ) {
+ // prepare search
+ $search = new Search($oldIndex->getClient());
+
+ $options = array_merge(
+ array(
+ self::OPTION_TYPE => null,
+ self::OPTION_QUERY => new MatchAll(),
+ self::OPTION_EXPIRY_TIME => '1m',
+ self::OPTION_SIZE_PER_SHARD => 1000,
+ ),
+ $options
+ );
+
+ $search->addIndex($oldIndex);
+ if (isset($options[self::OPTION_TYPE])) {
+ $type = $options[self::OPTION_TYPE];
+ $search->addTypes(is_array($type) ? $type : array($type));
+ }
+ $search->setQuery($options[self::OPTION_QUERY]);
+
+ // search on old index and bulk insert in new index
+ $scanAndScroll = new ScanAndScroll(
+ $search,
+ $options[self::OPTION_EXPIRY_TIME],
+ $options[self::OPTION_SIZE_PER_SHARD]
+ );
+ foreach ($scanAndScroll as $resultSet) {
+ $bulk = new Bulk($newIndex->getClient());
+ $bulk->setIndex($newIndex);
+
+ foreach ($resultSet as $result) {
+ $action = new Bulk\Action();
+ $action->setType($result->getType());
+ $action->setId($result->getId());
+ $action->setSource($result->getData());
+
+ $bulk->addAction($action);
+ }
+
+ $bulk->send();
+ }
+
+ $newIndex->refresh();
+
+ return $newIndex;
+ }
+
+ /**
+ * Copies type mappings and documents from an old index to a new index.
+ *
+ * @see \Elastica\Tool\CrossIndex::reindex()
+ *
+ * @param \Elastica\Index $oldIndex
+ * @param \Elastica\Index $newIndex
+ * @param array $options keys: CrossIndex::OPTION_* constants
+ *
+ * @return \Elastica\Index The new index object
+ */
+ public static function copy(
+ Index $oldIndex,
+ Index $newIndex,
+ array $options = array()
+ ) {
+ // normalize types to array of string
+ $types = array();
+ if (isset($options[self::OPTION_TYPE])) {
+ $types = $options[self::OPTION_TYPE];
+ $types = is_array($types) ? $types : array($types);
+
+ $types = array_map(
+ function ($type) {
+ if ($type instanceof Type) {
+ $type = $type->getName();
+ }
+
+ return (string) $type;
+ },
+ $types
+ );
+ }
+
+ // copy mapping
+ foreach ($oldIndex->getMapping() as $type => $mapping) {
+ if (!empty($types) && !in_array($type, $types, true)) {
+ continue;
+ }
+
+ $type = new Type($newIndex, $type);
+ $type->setMapping($mapping['properties']);
+ }
+
+ // copy documents
+ return self::reindex($oldIndex, $newIndex, $options);
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/AbstractTransport.php b/vendor/ruflin/elastica/lib/Elastica/Transport/AbstractTransport.php
index d2ce0fb2..c40b5107 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/AbstractTransport.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/AbstractTransport.php
@@ -1,17 +1,14 @@
<?php
-
namespace Elastica\Transport;
use Elastica\Connection;
-use Elastica\Request;
use Elastica\Exception\InvalidException;
use Elastica\Param;
+use Elastica\Request;
/**
- * Elastica Abstract Transport object
+ * Elastica Abstract Transport object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
abstract class AbstractTransport extends Param
@@ -22,7 +19,7 @@ abstract class AbstractTransport extends Param
protected $_connection;
/**
- * Construct transport
+ * Construct transport.
*
* @param \Elastica\Connection $connection Connection object
*/
@@ -43,23 +40,28 @@ abstract class AbstractTransport extends Param
/**
* @param \Elastica\Connection $connection Connection object
+ *
+ * @return $this
*/
public function setConnection(Connection $connection)
{
$this->_connection = $connection;
+
+ return $this;
}
/**
- * Executes the transport request
+ * Executes the transport request.
+ *
+ * @param \Elastica\Request $request Request object
+ * @param array $params Hostname, port, path, ...
*
- * @param \Elastica\Request $request Request object
- * @param array $params Hostname, port, path, ...
* @return \Elastica\Response Response object
*/
abstract public function exec(Request $request, array $params);
/**
- * Create a transport
+ * Create a transport.
*
* The $transport parameter can be one of the following values:
*
@@ -68,10 +70,12 @@ abstract class AbstractTransport extends Param
* * array: An array with a "type" key which must be set to one of the two options. All other
* keys in the array will be set as parameters in the transport instance
*
- * @param mixed $transport A transport definition
+ * @param mixed $transport A transport definition
* @param \Elastica\Connection $connection A connection instance
- * @param array $params Parameters for the transport class
+ * @param array $params Parameters for the transport class
+ *
* @throws \Elastica\Exception\InvalidException
+ *
* @return AbstractTransport
*/
public static function create($transport, Connection $connection, array $params = array())
@@ -85,16 +89,16 @@ abstract class AbstractTransport extends Param
}
if (is_string($transport)) {
- $className = 'Elastica\\Transport\\' . $transport;
+ $className = 'Elastica\\Transport\\'.$transport;
if (!class_exists($className)) {
throw new InvalidException('Invalid transport');
}
- $transport = new $className;
+ $transport = new $className();
}
- if ($transport instanceof AbstractTransport) {
+ if ($transport instanceof self) {
$transport->setConnection($connection);
foreach ($params as $key => $value) {
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Guzzle.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Guzzle.php
index 96ad8971..5c98d83b 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Guzzle.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Guzzle.php
@@ -1,133 +1,132 @@
<?php
-
namespace Elastica\Transport;
-use Elastica\Exception\Connection\HttpException;
+use Elastica\Connection;
use Elastica\Exception\Connection\GuzzleException;
use Elastica\Exception\PartialShardFailureException;
use Elastica\Exception\ResponseException;
-use Elastica\Exception\InvalidException;
-use Elastica\Connection;
+use Elastica\JSON;
use Elastica\Request;
use Elastica\Response;
-use Elastica\JSON;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\TransferException;
-use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Stream\Stream;
/**
- * Elastica Guzzle Transport object
+ * Elastica Guzzle Transport object.
*
- * @package Elastica
* @author Milan Magudia <milan@magudia.com>
*/
class Guzzle extends AbstractTransport
{
/**
- * Http scheme
+ * Http scheme.
*
* @var string Http scheme
*/
protected $_scheme = 'http';
/**
- * Curl resource to reuse
+ * Curl resource to reuse.
*
* @var resource Guzzle resource to reuse
*/
protected static $_guzzleClientConnection = null;
/**
- * Makes calls to the elasticsearch server
+ * Makes calls to the elasticsearch server.
*
* All calls that are made to the server are done through this function
*
- * @param \Elastica\Request $request
- * @param array $params Host, Port, ...
+ * @param \Elastica\Request $request
+ * @param array $params Host, Port, ...
+ *
* @throws \Elastica\Exception\ConnectionException
* @throws \Elastica\Exception\ResponseException
* @throws \Elastica\Exception\Connection\HttpException
- * @return \Elastica\Response Response object
+ *
+ * @return \Elastica\Response Response object
*/
public function exec(Request $request, array $params)
{
$connection = $this->getConnection();
- try {
- $client = $this->_getGuzzleClient($this->_getBaseUrl($connection), $connection->isPersistent());
+ $client = $this->_getGuzzleClient($this->_getBaseUrl($connection), $connection->isPersistent());
- $options = array();
- if ($connection->getTimeout()) {
- $options['timeout'] = $connection->getTimeout();
- }
+ $options = array(
+ 'exceptions' => false, // 4xx and 5xx is expected and NOT an exceptions in this context
+ );
+ if ($connection->getTimeout()) {
+ $options['timeout'] = $connection->getTimeout();
+ }
- if ($connection->getProxy()) {
- $options['proxy'] = $connection->getProxy();
- }
+ $proxy = $connection->getProxy();
- $req = $client->createRequest($request->getMethod(), $this->_getActionPath($request), $options);
- $req->setHeaders($connection->hasConfig('headers') ?: array());
+ // See: https://github.com/facebook/hhvm/issues/4875
+ if (is_null($proxy) && defined('HHVM_VERSION')) {
+ $proxy = getenv('http_proxy') ?: null;
+ }
+
+ if (!is_null($proxy)) {
+ $options['proxy'] = $proxy;
+ }
- $data = $request->getData();
- if (!empty($data) || '0' === $data) {
+ $req = $client->createRequest($request->getMethod(), $this->_getActionPath($request), $options);
+ $req->setHeaders($connection->hasConfig('headers') ? $connection->getConfig('headers') : array());
- if ($req->getMethod() == Request::GET) {
- $req->setMethod(Request::POST);
- }
+ $data = $request->getData();
+ if (!empty($data) || '0' === $data) {
+ if ($req->getMethod() == Request::GET) {
+ $req->setMethod(Request::POST);
+ }
- if ($this->hasParam('postWithRequestBody') && $this->getParam('postWithRequestBody') == true) {
- $request->setMethod(Request::POST);
- $req->setMethod(Request::POST);
- }
+ if ($this->hasParam('postWithRequestBody') && $this->getParam('postWithRequestBody') == true) {
+ $request->setMethod(Request::POST);
+ $req->setMethod(Request::POST);
+ }
- if (is_array($data)) {
- $content = JSON::stringify($data, 'JSON_ELASTICSEARCH');
- } else {
- $content = $data;
- }
- $req->setBody(Stream::factory($content));
+ if (is_array($data)) {
+ $content = JSON::stringify($data, 'JSON_ELASTICSEARCH');
+ } else {
+ $content = $data;
}
+ $req->setBody(Stream::factory($content));
+ }
+ try {
$start = microtime(true);
$res = $client->send($req);
$end = microtime(true);
+ } catch (TransferException $ex) {
+ throw new GuzzleException($ex, $request, new Response($ex->getMessage()));
+ }
- $response = new Response((string)$res->getBody(), $res->getStatusCode());
-
- if (defined('DEBUG') && DEBUG) {
- $response->setQueryTime($end - $start);
- }
-
- $response->setTransferInfo(
- array(
- 'request_header' => $request->getMethod(),
- 'http_code' => $res->getStatusCode()
- )
- );
-
- if ($response->hasError()) {
- throw new ResponseException($request, $response);
- }
+ $response = new Response((string) $res->getBody(), $res->getStatusCode());
+ $response->setQueryTime($end - $start);
- if ($response->hasFailedShards()) {
- throw new PartialShardFailureException($request, $response);
- }
+ $response->setTransferInfo(
+ array(
+ 'request_header' => $request->getMethod(),
+ 'http_code' => $res->getStatusCode(),
+ )
+ );
- return $response;
+ if ($response->hasError()) {
+ throw new ResponseException($request, $response);
+ }
- } catch (ClientException $e) {
- // ignore 4xx errors
- } catch (TransferException $e) {
- throw new GuzzleException($e, $request, new Response($e->getMessage()));
+ if ($response->hasFailedShards()) {
+ throw new PartialShardFailureException($request, $response);
}
+ return $response;
}
/**
- * Return Guzzle resource
+ * Return Guzzle resource.
+ *
+ * @param bool $persistent False if not persistent connection
*
- * @param bool $persistent False if not persistent connection
* @return resource Connection resource
*/
protected function _getGuzzleClient($baseUrl, $persistent = true)
@@ -140,9 +139,9 @@ class Guzzle extends AbstractTransport
}
/**
- * Builds the base url for the guzzle connection
+ * Builds the base url for the guzzle connection.
*
- * @param \Elastica\Connection $connection
+ * @param \Elastica\Connection $connection
*/
protected function _getBaseUrl(Connection $connection)
{
@@ -152,26 +151,27 @@ class Guzzle extends AbstractTransport
if (!empty($url)) {
$baseUri = $url;
} else {
- $baseUri = $this->_scheme . '://' . $connection->getHost() . ':' . $connection->getPort() . '/' . $connection->getPath();
+ $baseUri = $this->_scheme.'://'.$connection->getHost().':'.$connection->getPort().'/'.$connection->getPath();
}
+
return rtrim($baseUri, '/');
}
/**
- * Builds the action path url for each request
+ * Builds the action path url for each request.
*
- * @param \Elastica\Request $request
+ * @param \Elastica\Request $request
*/
protected function _getActionPath(Request $request)
{
$action = $request->getPath();
if ($action) {
- $action = '/'. ltrim($action, '/');
+ $action = '/'.ltrim($action, '/');
}
$query = $request->getQuery();
if (!empty($query)) {
- $action .= '?' . http_build_query($query);
+ $action .= '?'.http_build_query($query);
}
return $action;
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php
index 5606dbbc..1a33c0a6 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Transport;
use Elastica\Exception\Connection\HttpException;
@@ -10,39 +9,39 @@ use Elastica\Request;
use Elastica\Response;
/**
- * Elastica Http Transport object
+ * Elastica Http Transport object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Http extends AbstractTransport
{
/**
- * Http scheme
+ * Http scheme.
*
* @var string Http scheme
*/
protected $_scheme = 'http';
/**
- * Curl resource to reuse
+ * Curl resource to reuse.
*
* @var resource Curl resource to reuse
*/
protected static $_curlConnection = null;
/**
- * Makes calls to the elasticsearch server
+ * Makes calls to the elasticsearch server.
*
* All calls that are made to the server are done through this function
*
- * @param \Elastica\Request $request
- * @param array $params Host, Port, ...
+ * @param \Elastica\Request $request
+ * @param array $params Host, Port, ...
+ *
* @throws \Elastica\Exception\ConnectionException
* @throws \Elastica\Exception\ResponseException
* @throws \Elastica\Exception\Connection\HttpException
- * @return \Elastica\Response Response object
+ *
+ * @return \Elastica\Response Response object
*/
public function exec(Request $request, array $params)
{
@@ -56,7 +55,7 @@ class Http extends AbstractTransport
if (!empty($url)) {
$baseUri = $url;
} else {
- $baseUri = $this->_scheme . '://' . $connection->getHost() . ':' . $connection->getPort() . '/' . $connection->getPath();
+ $baseUri = $this->_scheme.'://'.$connection->getHost().':'.$connection->getPort().'/'.$connection->getPath();
}
$baseUri .= $request->getPath();
@@ -64,14 +63,26 @@ class Http extends AbstractTransport
$query = $request->getQuery();
if (!empty($query)) {
- $baseUri .= '?' . http_build_query($query);
+ $baseUri .= '?'.http_build_query($query);
}
curl_setopt($conn, CURLOPT_URL, $baseUri);
curl_setopt($conn, CURLOPT_TIMEOUT, $connection->getTimeout());
curl_setopt($conn, CURLOPT_FORBID_REUSE, 0);
+ /* @see Connection::setConnectTimeout() */
+ $connectTimeout = $connection->getConnectTimeout();
+ if ($connectTimeout > 0) {
+ curl_setopt($conn, CURLOPT_CONNECTTIMEOUT, $connectTimeout);
+ }
+
$proxy = $connection->getProxy();
+
+ // See: https://github.com/facebook/hhvm/issues/4875
+ if (is_null($proxy) && defined('HHVM_VERSION')) {
+ $proxy = getenv('http_proxy') ?: null;
+ }
+
if (!is_null($proxy)) {
curl_setopt($conn, CURLOPT_PROXY, $proxy);
}
@@ -83,7 +94,7 @@ class Http extends AbstractTransport
if (!empty($headersConfig)) {
$headers = array();
while (list($header, $headerValue) = each($headersConfig)) {
- array_push($headers, $header . ': ' . $headerValue);
+ array_push($headers, $header.': '.$headerValue);
}
curl_setopt($conn, CURLOPT_HTTPHEADER, $headers);
@@ -116,11 +127,6 @@ class Http extends AbstractTransport
curl_setopt($conn, CURLOPT_CUSTOMREQUEST, $httpMethod);
- if (defined('DEBUG') && DEBUG) {
- // Track request headers when in debug mode
- curl_setopt($conn, CURLINFO_HEADER_OUT, true);
- }
-
$start = microtime(true);
// cURL opt returntransfer leaks memory, therefore OB instead.
@@ -133,15 +139,10 @@ class Http extends AbstractTransport
// Checks if error exists
$errorNumber = curl_errno($conn);
- $response = new Response($responseString, curl_getinfo($this->_getConnection(), CURLINFO_HTTP_CODE));
-
- if (defined('DEBUG') && DEBUG) {
- $response->setQueryTime($end - $start);
- }
-
+ $response = new Response($responseString, curl_getinfo($conn, CURLINFO_HTTP_CODE));
+ $response->setQueryTime($end - $start);
$response->setTransferInfo(curl_getinfo($conn));
-
if ($response->hasError()) {
throw new ResponseException($request, $response);
}
@@ -158,7 +159,7 @@ class Http extends AbstractTransport
}
/**
- * Called to add additional curl params
+ * Called to add additional curl params.
*
* @param resource $curlConnection Curl connection
*/
@@ -172,9 +173,10 @@ class Http extends AbstractTransport
}
/**
- * Return Curl resource
+ * Return Curl resource.
+ *
+ * @param bool $persistent False if not persistent connection
*
- * @param bool $persistent False if not persistent connection
* @return resource Connection resource
*/
protected function _getConnection($persistent = true)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/HttpAdapter.php b/vendor/ruflin/elastica/lib/Elastica/Transport/HttpAdapter.php
new file mode 100644
index 00000000..efc27ab5
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/HttpAdapter.php
@@ -0,0 +1,156 @@
+<?php
+namespace Elastica\Transport;
+
+use Elastica\Connection;
+use Elastica\Exception\PartialShardFailureException;
+use Elastica\Exception\ResponseException;
+use Elastica\JSON;
+use Elastica\Request as ElasticaRequest;
+use Elastica\Response as ElasticaResponse;
+use Ivory\HttpAdapter\HttpAdapterInterface;
+use Ivory\HttpAdapter\Message\Request as HttpAdapterRequest;
+use Ivory\HttpAdapter\Message\Response as HttpAdapterResponse;
+use Ivory\HttpAdapter\Message\Stream\StringStream;
+
+class HttpAdapter extends AbstractTransport
+{
+ /**
+ * @var HttpAdapterInterface
+ */
+ private $httpAdapter;
+
+ /**
+ * @var string
+ */
+ private $_scheme = 'http';
+
+ /**
+ * Construct transport.
+ */
+ public function __construct(Connection $connection = null, HttpAdapterInterface $httpAdapter)
+ {
+ parent::__construct($connection);
+ $this->httpAdapter = $httpAdapter;
+ }
+
+ /**
+ * Makes calls to the elasticsearch server.
+ *
+ * All calls that are made to the server are done through this function
+ *
+ * @param \Elastica\Request $elasticaRequest
+ * @param array $params Host, Port, ...
+ *
+ * @throws \Elastica\Exception\ConnectionException
+ * @throws \Elastica\Exception\ResponseException
+ * @throws \Elastica\Exception\Connection\HttpException
+ *
+ * @return \Elastica\Response Response object
+ */
+ public function exec(ElasticaRequest $elasticaRequest, array $params)
+ {
+ $connection = $this->getConnection();
+
+ if ($timeout = $connection->getTimeout()) {
+ $this->httpAdapter->getConfiguration()->setTimeout($timeout);
+ }
+
+ $httpAdapterRequest = $this->_createHttpAdapterRequest($elasticaRequest, $connection);
+
+ $start = microtime(true);
+ $httpAdapterResponse = $this->httpAdapter->sendRequest($httpAdapterRequest);
+ $end = microtime(true);
+
+ $elasticaResponse = $this->_createElasticaResponse($httpAdapterResponse, $connection);
+ $elasticaResponse->setQueryTime($end - $start);
+
+ $elasticaResponse->setTransferInfo(
+ array(
+ 'request_header' => $httpAdapterRequest->getMethod(),
+ 'http_code' => $httpAdapterResponse->getStatusCode(),
+ )
+ );
+
+ if ($elasticaResponse->hasError()) {
+ throw new ResponseException($elasticaRequest, $elasticaResponse);
+ }
+
+ if ($elasticaResponse->hasFailedShards()) {
+ throw new PartialShardFailureException($elasticaRequest, $elasticaResponse);
+ }
+
+ return $elasticaResponse;
+ }
+
+ /**
+ * @param HttpAdapterResponse $httpAdapterResponse
+ *
+ * @return ElasticaResponse
+ */
+ protected function _createElasticaResponse(HttpAdapterResponse $httpAdapterResponse)
+ {
+ return new ElasticaResponse((string) $httpAdapterResponse->getBody(), $httpAdapterResponse->getStatusCode());
+ }
+
+ /**
+ * @param ElasticaRequest $elasticaRequest
+ * @param Connection $connection
+ *
+ * @return HttpAdapterRequest
+ */
+ protected function _createHttpAdapterRequest(ElasticaRequest $elasticaRequest, Connection $connection)
+ {
+ $data = $elasticaRequest->getData();
+ $body = null;
+ $method = $elasticaRequest->getMethod();
+ $headers = $connection->hasConfig('headers') ?: array();
+ if (!empty($data) || '0' === $data) {
+ if ($method == ElasticaRequest::GET) {
+ $method = ElasticaRequest::POST;
+ }
+
+ if ($this->hasParam('postWithRequestBody') && $this->getParam('postWithRequestBody') == true) {
+ $elasticaRequest->setMethod(ElasticaRequest::POST);
+ $method = ElasticaRequest::POST;
+ }
+
+ if (is_array($data)) {
+ $body = JSON::stringify($data, 'JSON_ELASTICSEARCH');
+ } else {
+ $body = $data;
+ }
+ }
+
+ $url = $this->_getUri($elasticaRequest, $connection);
+ $streamBody = new StringStream($body);
+
+ return new HttpAdapterRequest($url, $method, HttpAdapterRequest::PROTOCOL_VERSION_1_1, $headers, $streamBody);
+ }
+
+ /**
+ * @param ElasticaRequest $request
+ * @param \Elastica\Connection $connection
+ *
+ * @return string
+ */
+ protected function _getUri(ElasticaRequest $request, Connection $connection)
+ {
+ $url = $connection->hasConfig('url') ? $connection->getConfig('url') : '';
+
+ if (!empty($url)) {
+ $baseUri = $url;
+ } else {
+ $baseUri = $this->_scheme.'://'.$connection->getHost().':'.$connection->getPort().'/'.$connection->getPath();
+ }
+
+ $baseUri .= $request->getPath();
+
+ $query = $request->getQuery();
+
+ if (!empty($query)) {
+ $baseUri .= '?'.http_build_query($query);
+ }
+
+ return $baseUri;
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Https.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Https.php
index 64704039..b2b489dd 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Https.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Https.php
@@ -1,25 +1,22 @@
<?php
-
namespace Elastica\Transport;
/**
- * Elastica Http Transport object
+ * Elastica Http Transport object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Https extends Http
{
/**
- * Https scheme
+ * Https scheme.
*
* @var string https scheme
*/
protected $_scheme = 'https';
/**
- * Overloads setupCurl to set SSL params
+ * Overloads setupCurl to set SSL params.
*
* @param resource $connection Curl connection resource
*/
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Memcache.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Memcache.php
index cf047b58..fb56cdf4 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Memcache.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Memcache.php
@@ -1,7 +1,7 @@
<?php
-
namespace Elastica\Transport;
+use Elastica\Exception\Connection\MemcacheException;
use Elastica\Exception\InvalidException;
use Elastica\Exception\PartialShardFailureException;
use Elastica\Exception\ResponseException;
@@ -10,31 +10,32 @@ use Elastica\Request;
use Elastica\Response;
/**
- * Elastica Memcache Transport object
+ * Elastica Memcache Transport object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
+ *
+ * @deprecated The memcached transport is deprecated as of ES 1.5, and will be removed in ES 2.0
*/
class Memcache extends AbstractTransport
{
+ const MAX_KEY_LENGTH = 250;
+
/**
- * Makes calls to the elasticsearch server
+ * Makes calls to the elasticsearch server.
*
* @param \Elastica\Request $request
- * @param array $params Host, Port, ...
+ * @param array $params Host, Port, ...
+ *
* @throws \Elastica\Exception\ResponseException
* @throws \Elastica\Exception\InvalidException
- * @return \Elastica\Response Response object
+ *
+ * @return \Elastica\Response Response object
*/
public function exec(Request $request, array $params)
{
$memcache = new \Memcache();
$memcache->connect($this->getConnection()->getHost(), $this->getConnection()->getPort());
- // Finds right function name
- $function = strtolower($request->getMethod());
-
$data = $request->getData();
$content = '';
@@ -52,22 +53,34 @@ class Memcache extends AbstractTransport
$responseString = '';
- switch ($function) {
- case 'post':
- case 'put':
- $memcache->set($request->getPath(), $content);
+ $start = microtime(true);
+
+ switch ($request->getMethod()) {
+ case Request::POST:
+ case Request::PUT:
+ $key = $request->getPath();
+ $this->_checkKeyLength($key);
+ $memcache->set($key, $content);
break;
- case 'get':
- $responseString = $memcache->get($request->getPath() . '?source=' . $content);
+ case Request::GET:
+ $key = $request->getPath().'?source='.$content;
+ $this->_checkKeyLength($key);
+ $responseString = $memcache->get($key);
break;
- case 'delete':
+ case Request::DELETE:
+ $key = $request->getPath().'?source='.$content;
+ $this->_checkKeyLength($key);
+ $responseString = $memcache->delete($key);
break;
default:
- throw new InvalidException('Method ' . $function . ' is not supported in memcache transport');
-
+ case Request::HEAD:
+ throw new InvalidException('Method '.$request->getMethod().' is not supported in memcache transport');
}
+ $end = microtime(true);
+
$response = new Response($responseString);
+ $response->setQueryTime($end - $start);
if ($response->hasError()) {
throw new ResponseException($request, $response);
@@ -79,4 +92,18 @@ class Memcache extends AbstractTransport
return $response;
}
+
+ /**
+ * Check if key that will be used dont exceed 250 symbols.
+ *
+ * @param string $key
+ *
+ * @throws Elastica\Exception\Connection\MemcacheException If key is too long
+ */
+ private function _checkKeyLength($key)
+ {
+ if (strlen($key) >= self::MAX_KEY_LENGTH) {
+ throw new MemcacheException('Memcache key is too long');
+ }
+ }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Null.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Null.php
index 704e0e12..70dd9af1 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Null.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Null.php
@@ -1,44 +1,13 @@
<?php
-
namespace Elastica\Transport;
-use Elastica\JSON;
-use Elastica\Request;
-use Elastica\Response;
-
/**
- * Elastica Null Transport object
+ * Elastica Null Transport object.
+ *
+ * This class is for backward compatibility reason for all php < 7 versions. For PHP 7 and above use NullTransport as Null is reserved.
*
- * @package Elastica
* @author James Boehmer <james.boehmer@jamesboehmer.com>
*/
-class Null extends AbstractTransport
+class Null extends NullTransport
{
- /**
- * Null transport.
- *
- * @param \Elastica\Request $request
- * @param array $params Hostname, port, path, ...
- * @return \Elastica\Response Response empty object
- */
- public function exec(Request $request, array $params)
- {
- $response = array(
- "took" => 0,
- "timed_out" => FALSE,
- "_shards" => array(
- "total" => 0,
- "successful" => 0,
- "failed" => 0
- ),
- "hits" => array(
- "total" => 0,
- "max_score" => NULL,
- "hits" => array()
- ),
- "params" => $params
- );
-
- return new Response(JSON::stringify($response));
- }
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/NullTransport.php b/vendor/ruflin/elastica/lib/Elastica/Transport/NullTransport.php
new file mode 100644
index 00000000..d24f2110
--- /dev/null
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/NullTransport.php
@@ -0,0 +1,46 @@
+<?php
+namespace Elastica\Transport;
+
+use Elastica\JSON;
+use Elastica\Request;
+use Elastica\Response;
+
+/**
+ * Elastica Null Transport object.
+ *
+ * This is used in case you just need a test transport that doesn't do any connection to an elasticsearch
+ * host but still returns a valid response object
+ *
+ * @author James Boehmer <james.boehmer@jamesboehmer.com>
+ */
+class NullTransport extends AbstractTransport
+{
+ /**
+ * Null transport.
+ *
+ * @param \Elastica\Request $request
+ * @param array $params Hostname, port, path, ...
+ *
+ * @return \Elastica\Response Response empty object
+ */
+ public function exec(Request $request, array $params)
+ {
+ $response = array(
+ 'took' => 0,
+ 'timed_out' => false,
+ '_shards' => array(
+ 'total' => 0,
+ 'successful' => 0,
+ 'failed' => 0,
+ ),
+ 'hits' => array(
+ 'total' => 0,
+ 'max_score' => null,
+ 'hits' => array(),
+ ),
+ 'params' => $params,
+ );
+
+ return new Response(JSON::stringify($response));
+ }
+}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Thrift.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Thrift.php
index f58c51a2..5790f665 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Transport/Thrift.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Thrift.php
@@ -1,7 +1,7 @@
<?php
-
namespace Elastica\Transport;
+use Elastica\Connection;
use Elastica\Exception\Connection\ThriftException;
use Elastica\Exception\PartialShardFailureException;
use Elastica\Exception\ResponseException;
@@ -9,23 +9,22 @@ use Elastica\Exception\RuntimeException;
use Elastica\JSON;
use Elastica\Request;
use Elastica\Response;
-use Elastica\Connection;
use Elasticsearch\Method;
-use Elasticsearch\RestResponse;
use Elasticsearch\RestClient;
use Elasticsearch\RestRequest;
-use Thrift\Transport\TSocket;
-use Thrift\Transport\TFramedTransport;
-use Thrift\Transport\TBufferedTransport;
-use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Elasticsearch\RestResponse;
use Thrift\Exception\TException;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Transport\TBufferedTransport;
+use Thrift\Transport\TFramedTransport;
+use Thrift\Transport\TSocket;
/**
- * Elastica Thrift Transport object
+ * Elastica Thrift Transport object.
*
- * @category Xodoa
- * @package Elastica
* @author Mikhail Shamin <munk13@gmail.com>
+ *
+ * @deprecated The thrift transport is deprecated as of ES 1.5, and will be removed in ES 2.0
*/
class Thrift extends AbstractTransport
{
@@ -35,9 +34,10 @@ class Thrift extends AbstractTransport
protected $_clients = array();
/**
- * Construct transport
+ * Construct transport.
*
* @param \Elastica\Connection $connection Connection object
+ *
* @throws \Elastica\Exception\RuntimeException
*/
public function __construct(Connection $connection = null)
@@ -50,10 +50,11 @@ class Thrift extends AbstractTransport
/**
* @param string $host
- * @param int $port
- * @param int $sendTimeout msec
- * @param int $recvTimeout msec
- * @param bool $framedTransport
+ * @param int $port
+ * @param int $sendTimeout msec
+ * @param int $recvTimeout msec
+ * @param bool $framedTransport
+ *
* @return \Elasticsearch\RestClient
*/
protected function _createClient($host, $port, $sendTimeout = null, $recvTimeout = null, $framedTransport = false)
@@ -84,28 +85,32 @@ class Thrift extends AbstractTransport
/**
* @param string $host
- * @param int $port
- * @param int $sendTimeout
- * @param int $recvTimeout
- * @param bool $framedTransport
+ * @param int $port
+ * @param int $sendTimeout
+ * @param int $recvTimeout
+ * @param bool $framedTransport
+ *
* @return \Elasticsearch\RestClient
*/
protected function _getClient($host, $port, $sendTimeout = null, $recvTimeout = null, $framedTransport = false)
{
- $key = $host . ':' . $port;
+ $key = $host.':'.$port;
if (!isset($this->_clients[$key])) {
$this->_clients[$key] = $this->_createClient($host, $port, $sendTimeout, $recvTimeout, $framedTransport);
}
+
return $this->_clients[$key];
}
/**
- * Makes calls to the elasticsearch server
+ * Makes calls to the elasticsearch server.
*
* @param \Elastica\Request $request
- * @param array $params Host, Port, ...
+ * @param array $params Host, Port, ...
+ *
* @throws \Elastica\Exception\Connection\ThriftException
* @throws \Elastica\Exception\ResponseException
+ *
* @return \Elastica\Response Response object
*/
public function exec(Request $request, array $params)
@@ -156,9 +161,7 @@ class Thrift extends AbstractTransport
throw new ThriftException($e, $request, $response);
}
- if (defined('DEBUG') && DEBUG) {
- $response->setQueryTime($end - $start);
- }
+ $response->setQueryTime($end - $start);
if ($response->hasError()) {
throw new ResponseException($request, $response);
diff --git a/vendor/ruflin/elastica/lib/Elastica/Type.php b/vendor/ruflin/elastica/lib/Elastica/Type.php
index 1ed952db..8abec330 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Type.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Type.php
@@ -1,36 +1,31 @@
<?php
-
namespace Elastica;
-use Elastica\Document;
-use Elastica\Exception\RuntimeException;
use Elastica\Exception\InvalidException;
use Elastica\Exception\NotFoundException;
-use Elastica\Exception\ResponseException;
+use Elastica\Exception\RuntimeException;
use Elastica\Type\Mapping;
/**
- * Elastica type object
+ * Elastica type object.
*
* elasticsearch has for every types as a substructure. This object
* represents a type inside a context
* The hierarchy is as following: client -> index -> type -> document
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
*/
class Type implements SearchableInterface
{
/**
- * Index
+ * Index.
*
* @var \Elastica\Index Index object
*/
protected $_index = null;
/**
- * Type name
+ * Type name.
*
* @var string Type name
*/
@@ -42,10 +37,10 @@ class Type implements SearchableInterface
protected $_serializer;
/**
- * Creates a new type object inside the given index
+ * Creates a new type object inside the given index.
*
* @param \Elastica\Index $index Index Object
- * @param string $name Type name
+ * @param string $name Type name
*/
public function __construct(Index $index, $name)
{
@@ -54,9 +49,10 @@ class Type implements SearchableInterface
}
/**
- * Adds the given document to the search index
+ * Adds the given document to the search index.
+ *
+ * @param \Elastica\Document $doc Document with data
*
- * @param \Elastica\Document $doc Document with data
* @return \Elastica\Response
*/
public function addDocument(Document $doc)
@@ -111,8 +107,10 @@ class Type implements SearchableInterface
/**
* @param $object
* @param Document $doc
- * @return Response
+ *
* @throws Exception\RuntimeException
+ *
+ * @return Response
*/
public function addObject($object, Document $doc = null)
{
@@ -130,37 +128,46 @@ class Type implements SearchableInterface
}
/**
- * Update document, using update script. Requires elasticsearch >= 0.19.0
+ * Update document, using update script. Requires elasticsearch >= 0.19.0.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
+ *
+ * @param \Elastica\Document|\Elastica\Script $data Document with update data
+ * @param array $options array of query params to use for query. For possible options check es api
*
- * @param \Elastica\Document|\Elastica\Script $data Document with update data
* @throws \Elastica\Exception\InvalidException
+ *
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/api/update.html
*/
- public function updateDocument($data)
+ public function updateDocument($data, array $options = array())
{
if (!($data instanceof Document) && !($data instanceof Script)) {
- throw new \InvalidArgumentException("Data should be a Document or Script");
+ throw new \InvalidArgumentException('Data should be a Document or Script');
}
if (!$data->hasId()) {
throw new InvalidException('Document or Script id is not set');
}
+ $id = urlencode($data->getId());
+
return $this->getIndex()->getClient()->updateDocument(
- $data->getId(),
+ $id,
$data,
$this->getIndex()->getName(),
- $this->getName()
+ $this->getName(),
+ $options
);
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function updateDocuments(array $docs)
{
@@ -172,11 +179,13 @@ class Type implements SearchableInterface
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function addDocuments(array $docs)
{
@@ -188,11 +197,13 @@ class Type implements SearchableInterface
}
/**
- * Uses _bulk to send documents to the server
+ * Uses _bulk to send documents to the server.
*
* @param objects[] $objects
+ *
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function addObjects(array $objects)
{
@@ -213,27 +224,25 @@ class Type implements SearchableInterface
}
/**
- * Get the document from search index
+ * Get the document from search index.
+ *
+ * @param string $id Document id
+ * @param array $options Options for the get request.
*
- * @param string $id Document id
- * @param array $options Options for the get request.
* @throws \Elastica\Exception\NotFoundException
+ * @throws \Elastica\Exception\ResponseException
+ *
* @return \Elastica\Document
*/
public function getDocument($id, $options = array())
{
$path = urlencode($id);
- try {
- $response = $this->request($path, Request::GET, array(), $options);
- $result = $response->getData();
- } catch (ResponseException $e) {
- throw new NotFoundException('doc id ' . $id . ' not found');
- }
+ $response = $this->request($path, Request::GET, array(), $options);
+ $result = $response->getData();
- $info = $response->getTransferInfo();
- if ($info['http_code'] !== 200) {
- throw new NotFoundException('doc id ' . $id . ' not found');
+ if (!isset($result['found']) || $result['found'] === false) {
+ throw new NotFoundException('doc id '.$id.' not found');
}
if (isset($result['fields'])) {
@@ -251,8 +260,9 @@ class Type implements SearchableInterface
}
/**
- * @param string $id
+ * @param string $id
* @param array|string $data
+ *
* @return Document
*/
public function createDocument($id = '', $data = array())
@@ -264,7 +274,7 @@ class Type implements SearchableInterface
}
/**
- * Returns the type name
+ * Returns the type name.
*
* @return string Type name
*/
@@ -274,9 +284,10 @@ class Type implements SearchableInterface
}
/**
- * Sets value type mapping for this type
+ * Sets value type mapping for this type.
+ *
+ * @param \Elastica\Type\Mapping|array $mapping Elastica\Type\MappingType object or property array with all mappings
*
- * @param \Elastica\Type\Mapping|array $mapping Elastica\Type\MappingType object or property array with all mappings
* @return \Elastica\Response
*/
public function setMapping($mapping)
@@ -288,7 +299,7 @@ class Type implements SearchableInterface
}
/**
- * Returns current mapping for the given type
+ * Returns current mapping for the given type.
*
* @return array Current mapping
*/
@@ -308,10 +319,11 @@ class Type implements SearchableInterface
}
/**
- * Create search object
+ * Create search object.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
* @return \Elastica\Search
*/
public function createSearch($query = '', $options = null)
@@ -325,11 +337,13 @@ class Type implements SearchableInterface
}
/**
- * Do a search on this type
+ * Do a search on this type.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
+ *
+ * @return \Elastica\ResultSet ResultSet with all results inside
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @param int|array $options OPTIONAL Limit or associative array of options (option=>value)
- * @return \Elastica\ResultSet ResultSet with all results inside
* @see \Elastica\SearchableInterface::search
*/
public function search($query = '', $options = null)
@@ -340,10 +354,12 @@ class Type implements SearchableInterface
}
/**
- * Count docs by query
+ * Count docs by query.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return int number of documents matching the query
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return int number of documents matching the query
* @see \Elastica\SearchableInterface::count
*/
public function count($query = '')
@@ -354,7 +370,7 @@ class Type implements SearchableInterface
}
/**
- * Returns index client
+ * Returns index client.
*
* @return \Elastica\Index Index object
*/
@@ -365,6 +381,7 @@ class Type implements SearchableInterface
/**
* @param \Elastica\Document $document
+ *
* @return \Elastica\Response
*/
public function deleteDocument(Document $document)
@@ -378,18 +395,21 @@ class Type implements SearchableInterface
'replication',
'consistency',
'refresh',
- 'timeout'
+ 'timeout',
)
);
+
return $this->deleteById($document->getId(), $options);
}
/**
- * Uses _bulk to delete documents from the server
+ * Uses _bulk to delete documents from the server.
+ *
+ * @param array|\Elastica\Document[] $docs Array of Elastica\Document
*
- * @param array|\Elastica\Document[] $docs Array of Elastica\Document
* @return \Elastica\Bulk\ResponseSet
- * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
*/
public function deleteDocuments(array $docs)
{
@@ -401,14 +421,17 @@ class Type implements SearchableInterface
}
/**
- * Deletes an entry by its unique identifier
+ * Deletes an entry by its unique identifier.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html
+ *
+ * @param int|string $id Document id
+ * @param array $options
*
- * @param int|string $id Document id
- * @param array $options
* @throws \InvalidArgumentException
* @throws \Elastica\Exception\NotFoundException
- * @return \Elastica\Response Response object
- * @link http://www.elasticsearch.org/guide/reference/api/delete.html
+ *
+ * @return \Elastica\Response Response object
*/
public function deleteById($id, array $options = array())
{
@@ -423,17 +446,18 @@ class Type implements SearchableInterface
$responseData = $response->getData();
if (isset($responseData['found']) && false == $responseData['found']) {
- throw new NotFoundException('Doc id ' . $id . ' not found and can not be deleted');
+ throw new NotFoundException('Doc id '.$id.' not found and can not be deleted');
}
return $response;
}
/**
- * Deletes the given list of ids from this type
+ * Deletes the given list of ids from this type.
+ *
+ * @param array $ids
+ * @param string|false $routing Optional routing key for all ids
*
- * @param array $ids
- * @param string|false $routing Optional routing key for all ids
* @return \Elastica\Response Response object
*/
public function deleteIds(array $ids, $routing = false)
@@ -442,18 +466,21 @@ class Type implements SearchableInterface
}
/**
- * Deletes entries in the db based on a query
+ * Deletes entries in the db based on a query.
+ *
+ * @param \Elastica\Query|string $query Query object
+ * @param array $options Optional params
*
- * @param \Elastica\Query|string $query Query object
- * @param array $options Optional params
* @return \Elastica\Response
- * @link http://www.elasticsearch.org/guide/reference/api/delete-by-query.html
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
*/
public function deleteByQuery($query, array $options = array())
{
if (is_string($query)) {
// query_string queries are not supported for delete by query operations
$options['q'] = $query;
+
return $this->request('_query', Request::DELETE, array(), $options);
}
$query = Query::create($query);
@@ -474,56 +501,64 @@ class Type implements SearchableInterface
}
/**
- * More like this query based on the given object
+ * More like this query based on the given object.
*
* The id in the given object has to be set
*
- * @param \Elastica\Document $doc Document to query for similar objects
- * @param array $params OPTIONAL Additional arguments for the query
- * @param string|array|\Elastica\Query $query OPTIONAL Query to filter the moreLikeThis results
- * @return \Elastica\ResultSet ResultSet with all results inside
- * @link http://www.elasticsearch.org/guide/reference/api/more-like-this.html
+ * @param \Elastica\Document $doc Document to query for similar objects
+ * @param array $params OPTIONAL Additional arguments for the query
+ * @param string|array|\Elastica\Query $query OPTIONAL Query to filter the moreLikeThis results
+ *
+ * @return \Elastica\ResultSet ResultSet with all results inside
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/search-more-like-this.html
*/
public function moreLikeThis(Document $doc, $params = array(), $query = array())
{
- $path = $doc->getId() . '/_mlt';
+ $path = $doc->getId().'/_mlt';
$query = Query::create($query);
$response = $this->request($path, Request::GET, $query->toArray(), $params);
- return new ResultSet($response, $query);
+ return ResultSet::create($response, $query);
}
/**
- * Makes calls to the elasticsearch server based on this type
+ * Makes calls to the elasticsearch server based on this type.
+ *
+ * @param string $path Path to call
+ * @param string $method Rest method to use (GET, POST, DELETE, PUT)
+ * @param array $data OPTIONAL Arguments as array
+ * @param array $query OPTIONAL Query params
*
- * @param string $path Path to call
- * @param string $method Rest method to use (GET, POST, DELETE, PUT)
- * @param array $data OPTIONAL Arguments as array
- * @param array $query OPTIONAL Query params
* @return \Elastica\Response Response object
*/
public function request($path, $method, $data = array(), array $query = array())
{
- $path = $this->getName() . '/' . $path;
+ $path = $this->getName().'/'.$path;
return $this->getIndex()->request($path, $method, $data, $query);
}
/**
- * Sets the serializer callable used in addObject
+ * Sets the serializer callable used in addObject.
+ *
* @see \Elastica\Type::addObject
*
* @param array|string $serializer @see \Elastica\Type::_serializer
+ *
+ * @return $this
*/
public function setSerializer($serializer)
{
$this->_serializer = $serializer;
+
+ return $this;
}
/**
- * Checks if the given type exists in Index
+ * Checks if the given type exists in Index.
*
* @return bool True if type exists
*/
@@ -532,6 +567,6 @@ class Type implements SearchableInterface
$response = $this->getIndex()->request($this->getName(), Request::HEAD);
$info = $response->getTransferInfo();
- return (bool)($info['http_code'] == 200);
+ return (bool) ($info['http_code'] == 200);
}
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Type/AbstractType.php b/vendor/ruflin/elastica/lib/Elastica/Type/AbstractType.php
index ba2e0430..648102d2 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Type/AbstractType.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Type/AbstractType.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Type;
use Elastica\Client;
@@ -24,8 +23,7 @@ use Elastica\Util;
* - $_indexParams: Parameters for the index
*
* @todo Add some settings examples to code
- * @category Xodoa
- * @package Elastica
+ *
* @author Nicolas Ruflin <spam@ruflin.com>
*/
abstract class AbstractType implements SearchableInterface
@@ -33,68 +31,69 @@ abstract class AbstractType implements SearchableInterface
const MAX_DOCS_PER_REQUEST = 1000;
/**
- * Index name
+ * Index name.
*
* @var string Index name
*/
protected $_indexName = '';
/**
- * Index name
+ * Index name.
*
* @var string Index name
*/
protected $_typeName = '';
/**
- * Client
+ * Client.
*
* @var \Elastica\Client Client object
*/
protected $_client = null;
/**
- * Index
+ * Index.
*
* @var \Elastica\Index Index object
*/
protected $_index = null;
/**
- * Type
+ * Type.
*
* @var \Elastica\Type Type object
*/
protected $_type = null;
/**
- * Mapping
+ * Mapping.
*
* @var array Mapping
*/
protected $_mapping = array();
/**
- * Index params
+ * Index params.
*
* @var array Index params
*/
protected $_indexParams = array();
/**
- * Source
+ * Source.
*
- * @var boolean Source
+ * @var bool Source
*/
protected $_source = true;
/**
- * Creates index object with client connection
+ * Creates index object with client connection.
*
* Reads index and type name from protected vars _indexName and _typeName.
* Has to be set in child class
*
- * @param \Elastica\Client $client OPTIONAL Client object
+ * @param \Elastica\Client $client OPTIONAL Client object
+ *
* @throws \Elastica\Exception\InvalidException
*/
public function __construct(Client $client = null)
@@ -117,7 +116,7 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Creates the index and sets the mapping for this type
+ * Creates the index and sets the mapping for this type.
*
* @param bool $recreate OPTIONAL Recreates the index if true (default = false)
*/
@@ -133,7 +132,8 @@ abstract class AbstractType implements SearchableInterface
/**
* @param \Elastica\Query $query
- * @param array|int $options
+ * @param array|int $options
+ *
* @return \Elastica\Search
*/
public function createSearch($query = '', $options = null)
@@ -142,10 +142,12 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Search on the type
+ * Search on the type.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return \Elastica\ResultSet ResultSet with all results inside
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return \Elastica\ResultSet ResultSet with all results inside
* @see \Elastica\SearchableInterface::search
*/
public function search($query = '', $options = null)
@@ -154,10 +156,12 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Count docs in the type based on query
+ * Count docs in the type based on query.
+ *
+ * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
+ *
+ * @return int number of documents matching the query
*
- * @param string|array|\Elastica\Query $query Array with all query data inside or a Elastica\Query object
- * @return int number of documents matching the query
* @see \Elastica\SearchableInterface::count
*/
public function count($query = '')
@@ -166,7 +170,7 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Returns the search index
+ * Returns the search index.
*
* @return \Elastica\Index Index object
*/
@@ -176,7 +180,7 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Returns type object
+ * Returns type object.
*
* @return \Elastica\Type Type object
*/
@@ -186,11 +190,12 @@ abstract class AbstractType implements SearchableInterface
}
/**
- * Converts given time to format: 1995-12-31T23:59:59Z
+ * Converts given time to format: 1995-12-31T23:59:59Z.
*
* This is the lucene date format
*
- * @param int $date Date input (could be string etc.) -> must be supported by strtotime
+ * @param int $date Date input (could be string etc.) -> must be supported by strtotime
+ *
* @return string Converted date string
*/
public function convertDate($date)
diff --git a/vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php b/vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php
index 920093fb..509f0ce2 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php
@@ -1,5 +1,4 @@
<?php
-
namespace Elastica\Type;
use Elastica\Exception\InvalidException;
@@ -7,34 +6,33 @@ use Elastica\Request;
use Elastica\Type;
/**
- * Elastica Mapping object
+ * Elastica Mapping object.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
- * @link http://www.elasticsearch.org/guide/reference/mapping/
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
*/
class Mapping
{
/**
- * Mapping
+ * Mapping.
*
* @var array Mapping
*/
protected $_mapping = array();
/**
- * Type
+ * Type.
*
* @var \Elastica\Type Type object
*/
protected $_type = null;
/**
- * Construct Mapping
+ * Construct Mapping.
*
* @param \Elastica\Type $type OPTIONAL Type object
- * @param array $properties OPTIONAL Properties
+ * @param array $properties OPTIONAL Properties
*/
public function __construct(Type $type = null, array $properties = array())
{
@@ -50,8 +48,10 @@ class Mapping
/**
* Sets the mapping type
* Enter description here ...
- * @param \Elastica\Type $type Type object
- * @return \Elastica\Type\Mapping Current object
+ *
+ * @param \Elastica\Type $type Type object
+ *
+ * @return $this
*/
public function setType(Type $type)
{
@@ -61,10 +61,11 @@ class Mapping
}
/**
- * Sets the mapping properties
+ * Sets the mapping properties.
+ *
+ * @param array $properties Properties
*
- * @param array $properties Properties
- * @return \Elastica\Type\Mapping Mapping object
+ * @return $this
*/
public function setProperties(array $properties)
{
@@ -72,9 +73,9 @@ class Mapping
}
/**
- * Gets the mapping properties
+ * Gets the mapping properties.
*
- * @return array $properties Properties
+ * @return array $properties Properties
*/
public function getProperties()
{
@@ -82,10 +83,13 @@ class Mapping
}
/**
- * Sets the mapping _meta
+ * Sets the mapping _meta.
+ *
* @param array $meta metadata
- * @return \Elastica\Type\Mapping Mapping object
- * @link http://www.elasticsearch.org/guide/reference/mapping/meta.html
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-meta.html
*/
public function setMeta(array $meta)
{
@@ -93,7 +97,7 @@ class Mapping
}
/**
- * Returns mapping type
+ * Returns mapping type.
*
* @return \Elastica\Type Type
*/
@@ -103,14 +107,16 @@ class Mapping
}
/**
- * Sets source values
+ * Sets source values.
*
* To disable source, argument is
* array('enabled' => false)
*
- * @param array $source Source array
- * @return \Elastica\Type\Mapping Current object
- * @link http://www.elasticsearch.org/guide/reference/mapping/source-field.html
+ * @param array $source Source array
+ *
+ * @return $this
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html
*/
public function setSource(array $source)
{
@@ -118,12 +124,13 @@ class Mapping
}
/**
- * Disables the source in the index
+ * Disables the source in the index.
*
* Param can be set to true to enable again
*
- * @param bool $enabled OPTIONAL (default = false)
- * @return \Elastica\Type\Mapping Current object
+ * @param bool $enabled OPTIONAL (default = false)
+ *
+ * @return $this
*/
public function disableSource($enabled = false)
{
@@ -131,7 +138,7 @@ class Mapping
}
/**
- * Sets raw parameters
+ * Sets raw parameters.
*
* Possible options:
* _uid
@@ -147,9 +154,10 @@ class Mapping
* _size
* properties
*
- * @param string $key Key name
- * @param mixed $value Key value
- * @return \Elastica\Type\Mapping Current object
+ * @param string $key Key name
+ * @param mixed $value Key value
+ *
+ * @return $this
*/
public function setParam($key, $value)
{
@@ -159,22 +167,25 @@ class Mapping
}
/**
- * Get raw parameters
+ * Get raw parameters.
*
* @see setParam
- * @param string $key Key name
- * @return mixed $value Key value
+ *
+ * @param string $key Key name
+ *
+ * @return mixed $value Key value
*/
public function getParam($key)
{
- return isset($this->_mapping[$key])?$this->_mapping[$key]:null;
+ return isset($this->_mapping[$key]) ? $this->_mapping[$key] : null;
}
/**
- * Sets params for the "_all" field
+ * Sets params for the "_all" field.
+ *
+ * @param array $params _all Params (enabled, store, term_vector, analyzer)
*
- * @param array $params _all Params (enabled, store, term_vector, analyzer)
- * @return \Elastica\Type\Mapping
+ * @return $this
*/
public function setAllField(array $params)
{
@@ -182,10 +193,11 @@ class Mapping
}
/**
- * Enables the "_all" field
+ * Enables the "_all" field.
*
- * @param bool $enabled OPTIONAL (default = true)
- * @return \Elastica\Type\Mapping
+ * @param bool $enabled OPTIONAL (default = true)
+ *
+ * @return $this
*/
public function enableAllField($enabled = true)
{
@@ -193,22 +205,23 @@ class Mapping
}
/**
- * Set TTL
+ * Set TTL.
+ *
+ * @param array $params TTL Params (enabled, default, ...)
*
- * @param array $params TTL Params (enabled, default, ...)
- * @return \Elastica\Type\Mapping
+ * @return $this
*/
public function setTtl(array $params)
{
return $this->setParam('_ttl', $params);
-
}
/**
- * Enables TTL for all documents in this type
+ * Enables TTL for all documents in this type.
*
- * @param bool $enabled OPTIONAL (default = true)
- * @return \Elastica\Type\Mapping
+ * @param bool $enabled OPTIONAL (default = true)
+ *
+ * @return $this
*/
public function enableTtl($enabled = true)
{
@@ -216,10 +229,11 @@ class Mapping
}
/**
- * Set parent type
+ * Set parent type.
+ *
+ * @param string $type Parent type
*
- * @param string $type Parent type
- * @return \Elastica\Type\Mapping
+ * @return $this
*/
public function setParent($type)
{
@@ -227,10 +241,11 @@ class Mapping
}
/**
- * Converts the mapping to an array
+ * Converts the mapping to an array.
*
* @throws \Elastica\Exception\InvalidException
- * @return array Mapping as array
+ *
+ * @return array Mapping as array
*/
public function toArray()
{
@@ -244,7 +259,7 @@ class Mapping
}
/**
- * Submits the mapping and sends it to the server
+ * Submits the mapping and sends it to the server.
*
* @return \Elastica\Response Response object
*/
@@ -256,22 +271,24 @@ class Mapping
}
/**
- * Creates a mapping object
+ * Creates a mapping object.
+ *
+ * @param array|\Elastica\Type\Mapping $mapping Mapping object or properties array
*
- * @param array|\Elastica\Type\Mapping $mapping Mapping object or properties array
- * @return \Elastica\Type\Mapping Mapping object
* @throws \Elastica\Exception\InvalidException If invalid type
+ *
+ * @return self
*/
public static function create($mapping)
{
if (is_array($mapping)) {
- $mappingObject = new Mapping();
+ $mappingObject = new self();
$mappingObject->setProperties($mapping);
} else {
$mappingObject = $mapping;
}
- if (!$mappingObject instanceof Mapping) {
+ if (!$mappingObject instanceof self) {
throw new InvalidException('Invalid object type');
}
diff --git a/vendor/ruflin/elastica/lib/Elastica/Util.php b/vendor/ruflin/elastica/lib/Elastica/Util.php
index 679bd558..a49f2d78 100644
--- a/vendor/ruflin/elastica/lib/Elastica/Util.php
+++ b/vendor/ruflin/elastica/lib/Elastica/Util.php
@@ -1,29 +1,27 @@
<?php
-
namespace Elastica;
-use Elastica\JSON;
-
/**
- * Elastica tools
+ * Elastica tools.
*
- * @category Xodoa
- * @package Elastica
* @author Nicolas Ruflin <spam@ruflin.com>
* @author Thibault Duplessis <thibault.duplessis@gmail.com>
* @author Oleg Zinchenko <olegz@default-value.com>
+ * @author Roberto Nygaard <roberto@nygaard.es>
*/
class Util
{
/**
* Replace the following reserved words: AND OR NOT
* and
- * escapes the following terms: + - && || ! ( ) { } [ ] ^ " ~ * ? : \
+ * escapes the following terms: + - && || ! ( ) { } [ ] ^ " ~ * ? : \.
*
- * @param string $term Query term to replace and escape
- * @return string Replaced and escaped query term
* @link http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Boolean%20operators
* @link http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Escaping%20Special%20Characters
+ *
+ * @param string $term Query term to replace and escape
+ *
+ * @return string Replaced and escaped query term
*/
public static function replaceBooleanWordsAndEscapeTerm($term)
{
@@ -36,78 +34,82 @@ class Util
/**
* Escapes the following terms (because part of the query language)
- * + - && || ! ( ) { } [ ] ^ " ~ * ? : \
+ * + - && || ! ( ) { } [ ] ^ " ~ * ? : \ < >.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters
+ *
+ * @param string $term Query term to escape
*
- * @param string $term Query term to escape
* @return string Escaped query term
- * @link http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Escaping%20Special%20Characters
*/
public static function escapeTerm($term)
{
$result = $term;
// \ escaping has to be first, otherwise escaped later once again
- $chars = array('\\', '+', '-', '&&', '||', '!', '(', ')', '{', '}', '[', ']', '^', '"', '~', '*', '?', ':');
+ $chars = array('\\', '+', '-', '&&', '||', '!', '(', ')', '{', '}', '[', ']', '^', '"', '~', '*', '?', ':', '/', '<', '>');
foreach ($chars as $char) {
- $result = str_replace($char, '\\' . $char, $result);
+ $result = str_replace($char, '\\'.$char, $result);
}
- // since elasticsearch uses lucene 4.0 / needs to be escaped by \\
- $result = str_replace('/', '\\\\/', $result);
-
return $result;
}
/**
* Replace the following reserved words (because part of the query language)
- * AND OR NOT
+ * AND OR NOT.
*
- * @param string $term Query term to replace
- * @return string Replaced query term
* @link http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Boolean%20operators
+ *
+ * @param string $term Query term to replace
+ *
+ * @return string Replaced query term
*/
public static function replaceBooleanWords($term)
{
- $replacementMap = array('AND'=>'&&', 'OR'=>'||', 'NOT'=>'!');
+ $replacementMap = array(' AND ' => ' && ', ' OR ' => ' || ', ' NOT ' => ' !');
$result = strtr($term, $replacementMap);
return $result;
}
/**
- * Converts a snake_case string to CamelCase
+ * Converts a snake_case string to CamelCase.
*
* For example: hello_world to HelloWorld
*
- * @param string $string snake_case string
+ * @param string $string snake_case string
+ *
* @return string CamelCase string
*/
public static function toCamelCase($string)
{
- return str_replace(" ", "", ucwords(str_replace("_", " ", $string)));
+ return str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
}
/**
- * Converts a CamelCase string to snake_case
+ * Converts a CamelCase string to snake_case.
*
* For Example HelloWorld to hello_world
*
- * @param string $string CamelCase String to Convert
+ * @param string $string CamelCase String to Convert
+ *
* @return string SnakeCase string
*/
public static function toSnakeCase($string)
{
$string = preg_replace('/([A-Z])/', '_$1', $string);
- return strtolower(substr($string,1));
+ return strtolower(substr($string, 1));
}
/**
- * Converts given time to format: 1995-12-31T23:59:59Z
+ * Converts given time to format: 1995-12-31T23:59:59Z.
*
* This is the lucene date format
*
- * @param int $date Date input (could be string etc.) -> must be supported by strtotime
+ * @param int $date Date input (could be string etc.) -> must be supported by strtotime
+ *
* @return string Converted date string
*/
public static function convertDate($date)
@@ -117,16 +119,35 @@ class Util
} else {
$timestamp = strtotime($date);
}
- $string = date('Y-m-d\TH:i:s\Z', $timestamp);
+ $string = date('Y-m-d\TH:i:s\Z', $timestamp);
+
+ return $string;
+ }
+
+ /**
+ * Convert a \DateTime object to format: 1995-12-31T23:59:59Z+02:00.
+ *
+ * Converts it to the lucene format, including the appropriate TimeZone
+ *
+ * @param \DateTime $dateTime
+ * @param bool $includeTimezone
+ *
+ * @return string
+ */
+ public static function convertDateTimeObject(\DateTime $dateTime, $includeTimezone = true)
+ {
+ $formatString = 'Y-m-d\TH:i:s'.($includeTimezone === true ? 'P' : '\Z');
+ $string = $dateTime->format($formatString);
return $string;
}
/**
* Tries to guess the name of the param, based on its class
- * Example: \Elastica\Filter\HasChildFilter => has_child
+ * Example: \Elastica\Filter\HasChildFilter => has_child.
*
* @param string|object Class or Class name
+ *
* @return string parameter name
*/
public static function getParamName($class)
@@ -136,36 +157,38 @@ class Util
}
$parts = explode('\\', $class);
- $last = array_pop($parts);
- $last = preg_replace('/(Facet|Query|Filter)$/', '', $last);
- $name = self::toSnakeCase($last);
+ $last = array_pop($parts);
+ $last = preg_replace('/(Facet|Query|Filter)$/', '', $last);
+ $name = self::toSnakeCase($last);
return $name;
}
/**
- * Converts Request to Curl console command
+ * Converts Request to Curl console command.
*
* @param Request $request
+ *
* @return string
*/
public static function convertRequestToCurlCommand(Request $request)
{
- $message = 'curl -X' . strtoupper($request->getMethod()) . ' ';
- $message .= '\'http://' . $request->getConnection()->getHost() . ':' . $request->getConnection()->getPort() . '/';
+ $message = 'curl -X'.strtoupper($request->getMethod()).' ';
+ $message .= '\'http://'.$request->getConnection()->getHost().':'.$request->getConnection()->getPort().'/';
$message .= $request->getPath();
$query = $request->getQuery();
if (!empty($query)) {
- $message .= '?' . http_build_query($query);
+ $message .= '?'.http_build_query($query);
}
$message .= '\'';
$data = $request->getData();
if (!empty($data)) {
- $message .= ' -d \'' . JSON::stringify($data) . '\'';
+ $message .= ' -d \''.JSON::stringify($data).'\'';
}
+
return $message;
}
}