Я считаю, что мне нужно проксировать мое соединение ElasticSearch через URL-адрес Django, чтобы выполнять фильтрацию по токену пользователя.
Поэтому вместо того, чтобы идти через localhost:9200/_search
, я хочу использовать localhost:8000/myapi/elastic/_search
.
Я не уверен, как их подключить. Я пытался использовать настройку сериализаторов/представлений
мое приложение/search.py
class TaskIndex(DocType):
title = String()
class Meta:
index = 'task-index'
# Bulk indexing function, run in shell
def bulk_indexing():
TaskIndex.init()
es = Elasticsearch()
bulk(client=es, actions=(b.indexing() for b in models.Task.objects.all().iterator()))
# Simple search function
def _search(title):
s = Search().filter('term', title=title.text)
response = s.execute()
return response
API/serializers.py
из myapp.search импортировать TaskIndex
class ElasticSerializer(serializers.ModelSerializer):
class Meta:
model = TaskIndex
API/views.py
class ElasticViewSet(viewsets.ModelViewSet):
queryset = TaskIndex.objects.none()
serializer_class = ElasticSerializer
API/urls.py
router.register(r'elastic', ElasticViewSet)