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.
Note
This documentation represents the current version of Haystack. For old versions of the documentation:
Getting Started¶
If you’re new to Haystack, you may want to start with these documents to get you up and running:
Advanced Uses¶
Once you’ve got Haystack working, here are some of the more complex features you may want to include in your application.
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:
SearchQuerySet
APISearchIndex
API- Input Types
SearchField
APISearchResult
APISearchQuery
APISearchBackend
API- Architecture Overview
- Backend Support
- Haystack Settings
HAYSTACK_DEFAULT_OPERATOR
HAYSTACK_CONNECTIONS
HAYSTACK_ROUTERS
HAYSTACK_SIGNAL_PROCESSOR
HAYSTACK_DOCUMENT_FIELD
HAYSTACK_SEARCH_RESULTS_PER_PAGE
HAYSTACK_CUSTOM_HIGHLIGHTER
HAYSTACK_ITERATOR_LOAD_PER_QUERY
HAYSTACK_LIMIT_TO_REGISTERED_MODELS
HAYSTACK_ID_FIELD
HAYSTACK_DJANGO_CT_FIELD
HAYSTACK_DJANGO_ID_FIELD
HAYSTACK_IDENTIFIER_METHOD
HAYSTACK_FUZZY_MIN_SIM
HAYSTACK_FUZZY_MAX_EXPANSIONS
- Utilities
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:
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 Installing Search Engines for more details.