* Add support for post filter in Search
Search requests can now accept a post filter applied after all hits were
returned from the database. For example:
esquery.Search().
Query(...).
Aggs(...).
PostFilter(esquery.Range(field).Gt(0)).
Run(...)
* Add support for _source and sort in search requests
This commit adds the ability to use the "sort" and "_source" attributes
in search requests, via the new methods Sort, SourceIncludes and
SourceExcludes.
This commit implements a Search() function, which allow for running
search requests with both a query and aggregations. This function is
meant to more accurately implement the structure of search requests
accepted by ElasticSearch's Search API.
The Query() and Aggregate() functions are still included by the library,
but now simply call Search() internally, making them simple shortcuts.
Two new aggregations are also added: "terms" and "top_hits". These are
implemented a bit differently than previously implemented ones. The
structs and methods for ElasticSearch queries and aggregations will
eventually be auto-generated from a specification file, and will look
more like the new implementations of these new aggregations.