Small library which tries to simplify integration of Haystack with Django REST Framework. Fresh documentation available on Read the docs!
- Python 3.7 and above
- Django >=2.2,<4.3
- Haystack 2.8, 3.2
- Django REST Framework >=3.7.0,<3.16
- elasticsearch >=2.0.0,<=8.3.3,
$ pip install drf-haystack
We aim to support most features Haystack does (or at least those which can be used in a REST API). Currently, we support:
- Autocomplete
- Boost (Experimental)
- Faceting
- Geo Spatial Search
- Highlighting
- More Like This
from drf_haystack.serializers import HaystackSerializer
from drf_haystack.viewsets import HaystackViewSet
from myapp.search_indexes import PersonIndex # You would define this Index normally as per Haystack's documentation
# Serializer
class PersonSearchSerializer(HaystackSerializer):
class Meta:
index_classes = [PersonIndex]
fields = ["firstname", "lastname", "full_name"]
# ViewSet
class PersonSearchViewSet(HaystackViewSet):
index_models = [Person]
serializer_class = PersonSerializer
That's it, you're good to go. Hook it up to a DRF router and happy searching!