diff --git a/docs/Query/Wildcard.md b/docs/Query/Wildcard.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c646c5e9ff31628befcf5bb5cd1cd3baec36e93
--- /dev/null
+++ b/docs/Query/Wildcard.md
@@ -0,0 +1 @@
+# Wildcard Query
\ No newline at end of file
diff --git a/docs/Query/index.md b/docs/Query/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..a2d4d914b56d13a14cbf111d5711e78f91212381
--- /dev/null
+++ b/docs/Query/index.md
@@ -0,0 +1,67 @@
+# 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();
+```
+
+```php
+//$queryArray content
+'query' =>
+    [
+      'match_all' => \stdClass(),
+    ]
+```
+
+So now you can easily pass it to the elasticsearch-php client:
+
+```php
+//from elasticsearch/elasticsearch package
+$client = new Elasticsearch\Client();
+
+$searchParams = [
+  'index' => 'people',
+  'type' => 'person',
+  'body' => $queryArray
+];
+
+$docs = $client->search($searchParams);
+```
+> This example works with elasticsearch/elasticsearch ~1.0 version.
+
+
+## Queries:
+ - [Bool](Bool.md)
+ - [Boosting](Boosting.md)
+ - [Common terms](CommonTerms.md)
+ - [Constant Score](ConstantScore.md)
+ - [DisMax](DisMax.md)
+ - [Filtered](Filtered.md)
+ - [Function score](FunctionScore.md)
+ - [Fuzzy](Fuzzy.md)
+ - [Fuzzy like this field](FuzzyLikeThisField.md)
+ - [Fuzzy like this query](FuzzyLikeThisQuery.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)
+ - [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
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..bab2efd2c4130706c7860a86d3b02125f660714c
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,16 @@
+# Elasticsearch DSL
+
+Welcome to Elasticsearch DSL library. The main purpose of this library is to provide objective query builder for [elasticsearch-php][1] client.
+
+Everything starts from the `Search` object. We recommend first to take a look at the [Search](How to/HowToSearch.md) chapter.
+
+### Topics:
+- [Build Queries](Query/index.md)
+- [Build Filters]
+- [Build Aggregations]
+
+### How to
+- [How to combine `Filter` and `Query`]
+- [How to add sorting]
+
+[1] https://github.com/elastic/elasticsearch-php