Search doesn't have to be hard. Haystack lets you write your search code once and choose the search engine you want it to run on. With a familiar API that should make any Djangonaut feel right at home and an architecture that allows you to swap things in and out as you need to, it's how search ought to be.
Haystack is BSD licensed, plays nicely with third-party apps without needing to modify the source and supports Solr, Elasticsearch, Whoosh and Xapian.

Get started

  1. Install the package:
    1. Latest stable (2.6.0) off PyPI: pip install django-haystack
    2. Latest dev off GitHub: pip install -e git+
  2. Add haystack to your INSTALLED_APPS.
  3. Create files for your models.
  4. Setup the main SearchIndex via autodiscover.
  5. Include haystack.urls to your URLconf.
  6. Search!

More information in the full documentation.


There is a mailing list available for general discussion.

For those craving real, human interaction, there is also an IRC channel (#haystack on

Finally, if you find a bug or would like to request a feature, please submit an issue.