django-elasticsearch-dsl-drf:TypeError:search()得到了意外的关键字参数“ doc_type”

时间:2019-05-29 12:14:03

标签: python django elasticsearch django-rest-framework

我正在使用以下库通过Elastic搜索创建django API:

  • django-rest-framework
  • django-elasticsearch-dsl
  • django-elasticsearch-dsl-drf

调用api时,django-elasticsearch-dsl-drf库引发错误:

  

search()获得了意外的关键字参数'doc_type'

这是我的代码:

serializers.py

class TestSerializer(DocumentSerializer):
    class Meta(object):
        document = TestDocument
        fields = ("id", "name")

api.py

class TestDocumentViewSet(DocumentViewSet):
 document = TestDocument
 serializer_class = TestSerializer
 lookup_field = 'id'
 filter_backends = [
    CompoundSearchFilterBackend,
 ]
 multi_match_search_fields  = ('id', 'name')
 filter_fields = {
     'id': 'id',
     'name': 'name',
 }
 ordering_fields = {
     'id': 'id',
     'name': 'name',
 }
 ordering = ('id', 'name')

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

检查elasticsearch版本。希望使用兼容版本可以解决此问题。

答案 1 :(得分:0)

昨天我遇到了同样的问题,您需要检查elasticsearch版本,或者可以通过此命令直接下载版本-sudo pip install elasticsearch == version(例如6.3.1) 您可以通过以下命令检查弹性版本-pip Frozen