【问题标题】:django-elasticsearch-dsl-drf suggest url gives 404 errordjango-elasticsearch-dsl-drf 建议 url 给出 404 错误
【发布时间】:2020-06-09 04:25:49
【问题描述】:

我正在使用 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

enter image description here

我不确定我错过了什么。

【问题讨论】:

    标签: django elasticsearch


    【解决方案1】:

    我有类似的问题。有人为此提供了我的解决方案,它奏效了。因此,如果您有同样的问题,请从以下链接查看我的问题。那么该解决方案也适用于您。

    Django elasticsearch DSL DRF suggetions issue

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

    【讨论】:

    • 谢谢。我恢复了关于建议的工作。按照您帖子中的回答,它就像一个魅力。
    猜你喜欢
    • 2020-08-29
    • 2021-04-15
    • 1970-01-01
    • 2014-05-19
    • 2021-02-08
    • 2019-01-15
    • 2019-03-29
    • 2019-11-20
    • 1970-01-01
    相关资源
    最近更新 更多