diff --git a/docs/Query/Compound/FunctionScore.md b/docs/Query/Compound/FunctionScore.md index c45cfc00e60086e1b5b2e95a23d2fcea2df31615..76164f09a3825c836c285cf97048e3b5598b5549 100644 --- a/docs/Query/Compound/FunctionScore.md +++ b/docs/Query/Compound/FunctionScore.md @@ -105,7 +105,7 @@ $queryArray = $search->toArray(); ```php $functionScoreQuery = new FunctionScoreQuery(new MatchAllQuery()); $existsQuery = new ExistsQuery('price'); -$functionScoreQuery->addFieldValueFactorFunction('price', 0.5, 'ln', $existsQuery); +$functionScoreQuery->addFieldValueFactorFunction('price', 0.5, 'ln', $existsQuery, 0); $search = new Search(); $search->addQuery($functionScoreQuery); diff --git a/src/Query/Compound/FunctionScoreQuery.php b/src/Query/Compound/FunctionScoreQuery.php index 3aef8b83f8ed859ba32963a8a1e59f7748d46025..13beeaf83be0ab537fe47c2c4602be36cf5eecc8 100644 --- a/src/Query/Compound/FunctionScoreQuery.php +++ b/src/Query/Compound/FunctionScoreQuery.php @@ -60,18 +60,21 @@ class FunctionScoreQuery implements BuilderInterface * @param float $factor * @param string $modifier * @param BuilderInterface $query - * + * @param mixed $missing * @return $this */ - public function addFieldValueFactorFunction($field, $factor, $modifier = 'none', BuilderInterface $query = null) + public function addFieldValueFactorFunction($field, $factor, $modifier = 'none', BuilderInterface $query = null, $missing = null) { - $function = [ + $function = array_filter([ 'field_value_factor' => [ 'field' => $field, 'factor' => $factor, 'modifier' => $modifier, + 'missing' => $missing ], - ]; + ], function ($item) { + return $item !== null; + }); $this->applyFilter($function, $query); diff --git a/src/Search.php b/src/Search.php index cc5f2ca22a6665de41c557d12594f190fd360423..a427430b6b007d3ba1db5ba368f83ceda46f1a39 100644 --- a/src/Search.php +++ b/src/Search.php @@ -247,7 +247,7 @@ class Search /** * Returns queries inside BoolQuery instance. * - * @return BuilderInterface + * @return BoolQuery */ public function getQueries() { @@ -311,7 +311,7 @@ class Search /** * Returns queries inside BoolFilter instance. * - * @return BuilderInterface + * @return BoolQuery */ public function getPostFilters() { diff --git a/src/SearchEndpoint/SearchEndpointInterface.php b/src/SearchEndpoint/SearchEndpointInterface.php index 9bda4082bef0154866d49c56cc97d5172ae87e5a..17ec4abfb25536fd107c608510a2b6e0d851b3ba 100644 --- a/src/SearchEndpoint/SearchEndpointInterface.php +++ b/src/SearchEndpoint/SearchEndpointInterface.php @@ -12,6 +12,7 @@ namespace ONGR\ElasticsearchDSL\SearchEndpoint; use ONGR\ElasticsearchDSL\BuilderInterface; +use ONGR\ElasticsearchDSL\Query\Compound\BoolQuery; use Symfony\Component\Serializer\Normalizer\NormalizableInterface; /** @@ -71,7 +72,7 @@ interface SearchEndpointInterface extends NormalizableInterface /** * Returns Bool filter or query instance with all builder objects inside. * - * @return BuilderInterface + * @return BoolQuery */ public function getBool(); }