Django-Elasticsearch-DSL-DRF 建议 URL 给出 404 错误



我正在使用django-elasticsearch-dsl-drf,并用建议完成字段配置了文档。此外,我的观点集定义也有建议器。

公文:

class ProductsDocument(Document):
productName = fields.TextField(
attr='productName',
fields={
'raw': fields.KeywordField(),
'suggest': fields.CompletionField(),
}
)
description = fields.TextField(
analyzer=html_strip,
fields={
'raw': fields.KeywordField(),
'suggest': fields.CompletionField(),
'lower': fields.Text(analyzer=html_strip),
}
)

视图集:

class ProductsView(BaseDocumentViewSet):
document = ProductsDocument
serializer_class = ProductsSerializer
pagination_class = PageNumberPagination
lookup_field = 'id'
filter_backends = [
FilteringFilterBackend,
SuggesterFilterBackend,
IdsFilterBackend,
OrderingFilterBackend,
DefaultOrderingFilterBackend,
CompoundSearchFilterBackend,
NestedFilteringFilterBackend,
CompoundSearchFilterBackend,
]
search_fields = (
'productName',
'price',
'inStock',
'description',
'sellerprof.country.name',
)
suggester_fields = {
'productName_suggest': {
'field': 'productName.suggest',
'suggesters': [
SUGGESTER_COMPLETION,
],
'default_suggester': SUGGESTER_COMPLETION,
},
'description_suggest': {
'field': 'description.suggest',
'suggesters': [
SUGGESTER_COMPLETION,
],
'default_suggester': SUGGESTER_COMPLETION,
},
'productName_suggest': 'productName.suggest',
'description_suggest': 'description.suggest',
}

当我尝试使用建议完成 URL 时,我收到了 NotFoundError

在此处输入图像描述

我不确定我错过了什么。

我有类似的问题。有人为此为我提供了解决方案,它奏效了。因此,如果您有相同的问题,请从以下链接检查我的问题。那么该解决方案也将为您工作。

Django elasticsearch DSL DRF suggetions issue

您只需要继承 DocumentViewSet 而不是 BaseDocumentViewSet。

相关内容

最新更新