diff --git a/docs/Query/Bool.md b/docs/Query/Compound/Bool.md
similarity index 100%
rename from docs/Query/Bool.md
rename to docs/Query/Compound/Bool.md
diff --git a/docs/Query/Boosting.md b/docs/Query/Compound/Boosting.md
similarity index 100%
rename from docs/Query/Boosting.md
rename to docs/Query/Compound/Boosting.md
diff --git a/docs/Query/ConstantScore.md b/docs/Query/Compound/ConstantScore.md
similarity index 100%
rename from docs/Query/ConstantScore.md
rename to docs/Query/Compound/ConstantScore.md
diff --git a/docs/Query/DisMax.md b/docs/Query/Compound/DisMax.md
similarity index 100%
rename from docs/Query/DisMax.md
rename to docs/Query/Compound/DisMax.md
diff --git a/docs/Query/FunctionScore.md b/docs/Query/Compound/FunctionScore.md
similarity index 100%
rename from docs/Query/FunctionScore.md
rename to docs/Query/Compound/FunctionScore.md
diff --git a/docs/Query/Indices.md b/docs/Query/Compound/Indices.md
similarity index 100%
rename from docs/Query/Indices.md
rename to docs/Query/Compound/Indices.md
diff --git a/docs/Query/CommonTerms.md b/docs/Query/FullText/CommonTerms.md
similarity index 100%
rename from docs/Query/CommonTerms.md
rename to docs/Query/FullText/CommonTerms.md
diff --git a/docs/Query/Match.md b/docs/Query/FullText/Match.md
similarity index 100%
rename from docs/Query/Match.md
rename to docs/Query/FullText/Match.md
diff --git a/docs/Query/FullText/MatchPhrase.md b/docs/Query/FullText/MatchPhrase.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/FullText/MatchPhrase.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/FullText/MatchPhrasePrefix.md b/docs/Query/FullText/MatchPhrasePrefix.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/FullText/MatchPhrasePrefix.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/MultiMatch.md b/docs/Query/FullText/MultiMatch.md
similarity index 100%
rename from docs/Query/MultiMatch.md
rename to docs/Query/FullText/MultiMatch.md
diff --git a/docs/Query/QueryString.md b/docs/Query/FullText/QueryString.md
similarity index 100%
rename from docs/Query/QueryString.md
rename to docs/Query/FullText/QueryString.md
diff --git a/docs/Query/SimpleQueryString.md b/docs/Query/FullText/SimpleQueryString.md
similarity index 100%
rename from docs/Query/SimpleQueryString.md
rename to docs/Query/FullText/SimpleQueryString.md
diff --git a/docs/Query/Geo/GeoBoundingBox.md b/docs/Query/Geo/GeoBoundingBox.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Geo/GeoBoundingBox.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Geo/GeoDistance.md b/docs/Query/Geo/GeoDistance.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Geo/GeoDistance.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Geo/GeoDistanceRange.md b/docs/Query/Geo/GeoDistanceRange.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Geo/GeoDistanceRange.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Geo/GeoPolygon.md b/docs/Query/Geo/GeoPolygon.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Geo/GeoPolygon.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Geo/GeoShape.md b/docs/Query/Geo/GeoShape.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Geo/GeoShape.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/HasChild.md b/docs/Query/Joining/HasChild.md
similarity index 100%
rename from docs/Query/HasChild.md
rename to docs/Query/Joining/HasChild.md
diff --git a/docs/Query/HasParent.md b/docs/Query/Joining/HasParent.md
similarity index 100%
rename from docs/Query/HasParent.md
rename to docs/Query/Joining/HasParent.md
diff --git a/docs/Query/Nested.md b/docs/Query/Joining/Nested.md
similarity index 100%
rename from docs/Query/Nested.md
rename to docs/Query/Joining/Nested.md
diff --git a/docs/Query/SpanContaining.md b/docs/Query/Span/SpanContaining.md
similarity index 100%
rename from docs/Query/SpanContaining.md
rename to docs/Query/Span/SpanContaining.md
diff --git a/docs/Query/Span/SpanFirst.md b/docs/Query/Span/SpanFirst.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanFirst.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Span/SpanMultiTerm.md b/docs/Query/Span/SpanMultiTerm.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanMultiTerm.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Span/SpanNear.md b/docs/Query/Span/SpanNear.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanNear.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Span/SpanNot.md b/docs/Query/Span/SpanNot.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanNot.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Span/SpanOr.md b/docs/Query/Span/SpanOr.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanOr.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Span/SpanTerm.md b/docs/Query/Span/SpanTerm.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Span/SpanTerm.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/SpanWithin.md b/docs/Query/Span/SpanWithin.md
similarity index 100%
rename from docs/Query/SpanWithin.md
rename to docs/Query/Span/SpanWithin.md
diff --git a/docs/Query/MoreLikeThis.md b/docs/Query/Specialized/MoreLikeThis.md
similarity index 100%
rename from docs/Query/MoreLikeThis.md
rename to docs/Query/Specialized/MoreLikeThis.md
diff --git a/docs/Query/Specialized/Script.md b/docs/Query/Specialized/Script.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/Specialized/Script.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Template.md b/docs/Query/Specialized/Template.md
similarity index 100%
rename from docs/Query/Template.md
rename to docs/Query/Specialized/Template.md
diff --git a/docs/Query/TermLevel/Exists.md b/docs/Query/TermLevel/Exists.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/TermLevel/Exists.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Fuzzy.md b/docs/Query/TermLevel/Fuzzy.md
similarity index 100%
rename from docs/Query/Fuzzy.md
rename to docs/Query/TermLevel/Fuzzy.md
diff --git a/docs/Query/Ids.md b/docs/Query/TermLevel/Ids.md
similarity index 100%
rename from docs/Query/Ids.md
rename to docs/Query/TermLevel/Ids.md
diff --git a/docs/Query/Prefix.md b/docs/Query/TermLevel/Prefix.md
similarity index 100%
rename from docs/Query/Prefix.md
rename to docs/Query/TermLevel/Prefix.md
diff --git a/docs/Query/Range.md b/docs/Query/TermLevel/Range.md
similarity index 100%
rename from docs/Query/Range.md
rename to docs/Query/TermLevel/Range.md
diff --git a/docs/Query/Regexp.md b/docs/Query/TermLevel/Regexp.md
similarity index 100%
rename from docs/Query/Regexp.md
rename to docs/Query/TermLevel/Regexp.md
diff --git a/docs/Query/Term.md b/docs/Query/TermLevel/Term.md
similarity index 100%
rename from docs/Query/Term.md
rename to docs/Query/TermLevel/Term.md
diff --git a/docs/Query/Terms.md b/docs/Query/TermLevel/Terms.md
similarity index 100%
rename from docs/Query/Terms.md
rename to docs/Query/TermLevel/Terms.md
diff --git a/docs/Query/TermLevel/Type.md b/docs/Query/TermLevel/Type.md
new file mode 100644
index 0000000000000000000000000000000000000000..f063e2d83a71aa56732bbdec2bb154f8962846fa
--- /dev/null
+++ b/docs/Query/TermLevel/Type.md
@@ -0,0 +1 @@
+Documentation in progress...
\ No newline at end of file
diff --git a/docs/Query/Wildcard.md b/docs/Query/TermLevel/Wildcard.md
similarity index 100%
rename from docs/Query/Wildcard.md
rename to docs/Query/TermLevel/Wildcard.md
diff --git a/docs/Query/index.md b/docs/Query/index.md
deleted file mode 100644
index 29cc1212694597163a2b5e755eb691f433b36fff..0000000000000000000000000000000000000000
--- a/docs/Query/index.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# Query
-
-Objective query builder represents all available [Elasticsearch queries][1].
-
-To form a query you have to create `Search` object. See below an example of match all query usage.
-
-```php
-$search = new Search();
-$matchAllQuery = new MatchAllQuery();
-$search->addQuery($matchAllQuery);
-$queryArray = $search->toArray();
-```
-
-Query handles are necessary little things like where to put `\stdClass` and where to simple array. So by using DSL builder you can be always sure that it will form a correct query.
-
-Here's `$queryArray` var_dump:
-
-```php
-//$queryArray content
-'query' =>
-    [
-      'match_all' => \stdClass(),
-    ]
-```
-
-For more information how to combine search queries take a look at [How to search](../HowTo/HowToSearch.md) chapter.
-
-
-## Queries:
- - [Bool](Bool.md)
- - [Boosting](Boosting.md)
- - [Common terms](CommonTerms.md)
- - [Constant Score](ConstantScore.md)
- - [DisMax](DisMax.md)
- - [Function score](FunctionScore.md)
- - [Fuzzy](Fuzzy.md)
- - [Has child](HasChild.md)
- - [Has parent](HasParent.md)
- - [Ids](Ids.md)
- - [Indices](Indices.md)
- - [Match all](MatchAll.md)
- - [Match](Match.md)
- - [More like this](MoreLikeThis.md)
- - [Multi match](MultiMatch.md)
- - [Nested](Nested.md)
- - [Prefix](Prefix.md)
- - [Query string](QueryString.md)
- - [Range](Range.md)
- - [Regexp](Regexp.md)
- - [Simple query string](SimpleQueryString.md)
- - [Term](Term.md)
- - [Terms](Terms.md)
- - [Wildcard](Wildcard.md)
-
-[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-queries.html