diff --git a/Filter/NotFilter.php b/Filter/NotFilter.php
index 4f187b501f0568059ade955aa54da0b49f9750cc..29be5e521c78dfcbdb48819ee17cff7c79448ca4 100644
--- a/Filter/NotFilter.php
+++ b/Filter/NotFilter.php
@@ -16,6 +16,8 @@ use ONGR\ElasticsearchBundle\DSL\ParametersTrait;
 
 /**
  * Represents Elasticsearch "not" filter.
+ *
+ * @link http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-not-filter.html
  */
 class NotFilter implements BuilderInterface
 {
@@ -30,11 +32,33 @@ class NotFilter implements BuilderInterface
      * @param BuilderInterface $filter     Filter.
      * @param array            $parameters Optional parameters.
      */
-    public function __construct($filter, array $parameters = [])
+    public function __construct(BuilderInterface $filter = null, array $parameters = [])
     {
-        $this->filter = $filter;
+        if ($filter !== null) {
+            $this->setFilter($filter);
+        }
         $this->setParameters($parameters);
     }
+    
+    /**
+     * Returns filter.
+     *
+     * @return BuilderInterface
+     */
+    public function getFilter()
+    {
+        return $this->filter;
+    }
+
+    /**
+     * Sets filter.
+     *
+     * @param BuilderInterface $filter
+     */
+    public function setFilter(BuilderInterface $filter)
+    {
+        $this->filter = $filter;
+    }
 
     /**
      * {@inheritdoc}