我相信我需要通过 Django URL 代理我的 ElasticSearch 连接,以便按用户令牌进行过滤。
localhost:9200/_search
所以我不想使用via ,而是使用localhost:8000/myapi/elastic/_search
.
我不确定如何连接它们。我试过使用序列化器/视图设置
myapp/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 导入任务索引
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)