Из ангуляра отправляешь параметры поиска, либо в какой-то отдельный сервис в дрф, либо просто как query-params к какому-либо ресурсу. Обрабатываешь эти параметры, делаешь запрос в сфинкс, получаешь ответ, например в виде списка id. Отдаешь эти айдишники в queryset.
class ProductViewSet(viewsets.ReadOnlyModelViewSet):
# queryset = Product.objects.filter(is_active=True)
def get_queryset(self):
queryset = Product.objects.filter(is_active=True)
attributes = self.request.query_params.get('attributes', None)
# if attributes is not None:
# custom logic of search
# list_of_ids = [...]
# queryset.filter(id__in=list_of_ids)
return queryset
Можно еще через django-filter, через MethodFilter