From a14ee94a0362ad7c1aaf0666dc5a245f05f50c2d Mon Sep 17 00:00:00 2001
From: Aivaras Gotovskis <aivaras.gotovskis@ongr.io>
Date: Wed, 1 Jul 2015 12:00:41 +0300
Subject: [PATCH] Add filtered docs.

---
 docs/Query/Filtered.md | 58 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 docs/Query/Filtered.md

diff --git a/docs/Query/Filtered.md b/docs/Query/Filtered.md
new file mode 100644
index 0000000..dd88dc6
--- /dev/null
+++ b/docs/Query/Filtered.md
@@ -0,0 +1,58 @@
+# Filtered query
+
+> More info about filtered query is in the [official elasticsearch docs][1]
+
+The filtered query is used to combine another query with any filter. Filters are usually faster than queries.
+
+Lets try to write this example
+```JSON
+{
+    "filtered": {
+        "query": {
+            "match": { "tweet": "full text search" }
+        },
+        "filter": {
+            "range": { "created": { "gte": "now - 1d / d" }}
+        }
+    }
+}
+```
+
+In DSL:
+
+```php
+$matchQuery = new MatchQuery('tweet', 'full text search');
+$rangeFilter = new RangeFilter('created', ['gte' => 'now - 1d / d']);
+
+$filteredQuery = new FilteredQuery($matchQuery, $rangeFilter);
+
+$search = new Search();
+$search->addQuery($filteredQuery);
+
+$queryArray = $search->toArray();
+```
+
+Or:
+
+```php
+$matchQuery = new MatchQuery('tweet', 'full text search');
+$rangeFilter = new RangeFilter('created', ['gte' => 'now - 1d / d']);
+
+$filteredQuery = new FilteredQuery();
+$filteredQuery->setQuery($matchQuery);
+$filteredQuery->setFilter($rangeFilter);
+
+$search = new Search();
+$search->addQuery($filteredQuery);
+
+$queryArray = $search->toArray();
+```
+
+Multiple queries and filters can be used with help off [Bool Query][2] and [Bool Filter][3] respectively.
+
+If query is not set it defaults to Match all, thus Filtered query can be used as filter in places where query is
+expected.
+
+[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html
+[2]: Bool.md
+[3]: ../Filter/Bool.md
-- 
GitLab