We are currently working on an official QuerySet-like python library here at Elasticsearch:<p><a href="https://github.com/elasticsearch/elasticsearch-dsl-py" rel="nofollow">https://github.com/elasticsearch/elasticsearch-dsl-py</a>
Take a look at ElasticUtils from Mozilla. It also provides a queryset-inspired interface for elasticsearch.<p><a href="http://elasticutils.readthedocs.org/" rel="nofollow">http://elasticutils.readthedocs.org/</a>
Hi Yipit folks! It's Alec, from the Seattle Django group. We also developed something like this internally at Nimia due to the exact same use case: needing to access certain types of queries that didn't fit for haystack. Looks like we should have open sourced it so we could have collaborated.
If you'd like something that tackles the challenge of making the Elasticsearch JSON API explicit:<p><a href="http://github.com/bitemyapp/bloodhound/" rel="nofollow">http://github.com/bitemyapp/bloodhound/</a><p>(Intended to act as a guide as well as a practical ES client)
I work with Andrew at Yipit. As he mentioned in a comment below, we're using features of Elasticsearch that aren't (and probably shouldn't be) exposed by haystack, and some of the query building started to get a little messy.<p>I'm excited Andrew decided to work on this during our last hackathon and that now we're able to share it with the community.<p>We've been really happy with Elasticsearch. Hopefully this library will help more people leverage Elasticsearch in their python projects.
I'll have to play with it, currently we use the SearchQuerySet api provided by django_haystack to query Elasticsearch and it works pretty well for us.
Is the precommit hook[1] a custom one or is it an off-the-shelf Django recommended hook? Looks like it has some neat tricks and code style checking.<p>[1]: <a href="https://github.com/Yipit/pyeqs/blob/master/pre-commit" rel="nofollow">https://github.com/Yipit/pyeqs/blob/master/pre-commit</a>
bad coding style in some places
(e.g.: <a href="https://github.com/Yipit/pyeqs/blob/master/pyeqs/dsl/range.py" rel="nofollow">https://github.com/Yipit/pyeqs/blob/master/pyeqs/dsl/range.p...</a> where he redefines python range)