[Fixed]-How can I filter a Haystack SearchQuerySet for None on an IntegerField


I feel this question was not answered. It seems the op was asking how to filter for null entries using haystack.query.SearchQuerySet with an ElasticSearch backend.

In the example above, replace




Not intuitive, but its the only way I have gotten this to work so far.


If you are using ElasticSearch, the solution can be done without patching, just using native ElasticSearch:

from haystack.inputs import Raw
self.searchqueryset.exclude(group = Raw("[* TO *]"))

Other way around, filter all documents that have non-emtpy group field:

from haystack.inputs import Raw
self.searchqueryset.filter(group = Raw("[* TO *]"))

This could work for SOLR too and for other Haystack backends applying the same concept but with specific syntax of the backend search language.



If you’re using SOLR, you’d probably like to have a look at the following links:

1) https://github.com/toastdriven/django-haystack/commit/9332a91a7f0e4b33d7e20aa892d156305c12dfe3
2) https://github.com/toastdriven/django-haystack/issues/163

There’s a patch for SOLR, allowing such queries, but for other backends there’s probably none.

Leave a comment