Welcome to Haystack!
====================

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.

.. _Solr: http://lucene.apache.org/solr/
.. _Elasticsearch: http://elasticsearch.org/
.. _Whoosh: https://github.com/mchaput/whoosh/
.. _Xapian: http://xapian.org/


.. 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/

Getting Started
---------------

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
   other_apps
   installing_search_engines
   debugging

   changelog
   contributing
   python3
   migration_from_1_to_2


Advanced Uses
-------------

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


Reference
---------

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


Developing
----------

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


Requirements
------------

Haystack has a relatively easily-met set of requirements.

* Python 3.8+
* Django 3-5

Additionally, each backend has its own requirements. You should refer to
:doc:`installing_search_engines` for more details.
