Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify your code.
Note
This documentation represents the current version of Haystack. For old versions of the documentation:
- v2.5.X: https://django-haystack.readthedocs.io/en/v2.5.1/
- v2.4.X: https://django-haystack.readthedocs.io/en/v2.4.1/
- v2.3.X: https://django-haystack.readthedocs.io/en/v2.3.0/
- v2.2.X: https://django-haystack.readthedocs.io/en/v2.2.0/
- v2.1.X: https://django-haystack.readthedocs.io/en/v2.1.0/
- v2.0.X: https://django-haystack.readthedocs.io/en/v2.0.0/
- v1.2.X: https://django-haystack.readthedocs.io/en/v1.2.7/
- v1.1.X: https://django-haystack.readthedocs.io/en/v1.1/
If you're new to Haystack, you may want to start with these documents to get you up and running:
.. toctree:: :maxdepth: 2 tutorial
.. toctree:: :maxdepth: 1 views_and_forms templatetags glossary management_commands faq who_uses other_apps installing_search_engines debugging changelog contributing python3 migration_from_1_to_2
Once you've got Haystack working, here are some of the more complex features you may want to include in your application.
.. toctree:: :maxdepth: 1 best_practices highlighting faceting autocomplete boost signal_processors multiple_index rich_content_extraction spatial admin
If you're an experienced user and are looking for a reference, you may be looking for API documentation and advanced usage as detailed in:
.. toctree:: :maxdepth: 2 searchqueryset_api searchindex_api inputtypes searchfield_api searchresult_api searchquery_api searchbackend_api architecture_overview backend_support settings utils
Finally, if you're looking to help out with the development of Haystack, the following links should help guide you on running tests and creating additional backends:
.. toctree:: :maxdepth: 1 running_tests creating_new_backends
Haystack has a relatively easily-met set of requirements.
- Python 2.7+ or Python 3.3+
- A supported version of Django: https://www.djangoproject.com/download/#supported-versions
Additionally, each backend has its own requirements. You should refer to :doc:`installing_search_engines` for more details.