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();
 }