Pre-release 0.4.0.pre
[DEPRECATE] Deprecate the support for passing JSON strings to `Index#store` [#275]
[ACTIVEMODEL] Support any level of mappings in `mapping`

Previously, only two levels of mappings were supported, ex:

    mapping do
      indexes :title, :type => 'string'
      indexes :author do
        indexes :first_name, :type => 'string'
        indexes :last_name,  :type => 'string', :boost => 100
      end
    end

This commit adds support for any level of mappings, ex:

    mapping do
      indexes :title, :type => 'string'
      indexes :author do
        indexes :first_name, :type => 'string'
        indexes :last_name,  :type => 'string', :boost => 100

        indexes :posts do
          indexes :title, :type => 'string', :boost => 10
        end
      end
    end

Closes #210.
[DOC] Update information for installing ElasticSearch to the 0.19.0 version
[DOC] Update documentation for Mongoid users in Readme

* Leave out needless code
* Use `as_json`, not `to_json` in the `Article.to_indexed_json`!
* Use the proxy to not mix it up with Mongoid interface: `Article.tire.search 'love'`

Fixes #157.
Added the `:raise` option to Index#bulk_store and Index#import

When the `:raise` option is passed, any exception received is re-raised.

Closes #224.
[#224] Cleaned up the Index#import interface and import/bulk_store tests

* Removed the positional argument `method` and moved it into the options Hash
* Updated tests
* Cleaned up mocked interfaces in Index tests
[#242] Added support for the Explain API

See <http://www.elasticsearch.org/guide/reference/api/search/explain.html>

* Added support for `explain` in the search DSL
* Added support for the `_explanation` field on resulting items
[#88] Added specification for passing routing in search requests
[#15] Refactored and fixed passing of Hash payloads in `Tire.search`

* Return `Search::Search.new ...`, not perform custom POST request, dude
* Changed Search::Search#to_hash to work with options[:payload]
* Added simple integration test

Closes #15.
[#15] Refactored and fixed passing of Hash payloads in `Tire.search`

* Return `Search::Search.new ...`, not perform custom POST request, dude
* Changed Search::Search#to_hash to work with options[:payload]
* Added simple integration test

Closes #15.
Added support for passing search params (`search_type`, `timeout`, etc.) to search requests

Previously, passing of parameters such as search_type [http://www.elasticsearch.org/guide/reference/api/search/search-type.html]
to search requests wasn't supported, so in cases like getting counts or being interested in just facets,
the workaround was to use `size 0`.

This commit implements passing of parameters to search requests as URL-encoded string.

Just pass the parameters you need to the `search` method:

    s = Tire.search 'articles-test', :search_type => 'count' do
      query { term :tags, 'ruby' }
    end

    p s.results.total
    # => 2
    p s.json['hits']
    # => {"total"=>2, "max_score"=>0.0, "hits"=>[]}

See the possible list of request parameters here:

* http://www.elasticsearch.org/guide/reference/api/search/request-body.html
* http://www.elasticsearch.org/guide/reference/api/search/uri-request.html

Closes #242, closes #198, closes #196, closes #89, closes #88, closes #258, closes #100.
[TEST] [FIX] Add missing mock of performing request to ES in `unit/index_test`