Wagtail и Elasticsearch , Lookup "icontains"" не распознается

Я пытаюсь запустить поиск с помощью Wagtail (5.2) и Elastic (7)

Когда я выполняю поиск пользователей wagtail_admin/users/?q=ffff, я получаю такую ошибку

FilterFieldError
Cannot filter search results with field "email". Please add index.FilterField('email') to User.search_fields

Затем я добавляю дополнительное поле к полям поиска в коде

class User:

   search_fields = [
        index.SearchField("name", partial_match=True),
        index.FilterField("email", partial_match=True),
    ]

Но только что возникла другая ошибка

FilterError /wagtail_admin/users/
Could not apply filter on search results: "email__icontains = ffff". Lookup "icontains"" not recognised.

Как это можно исправить?

Согласно документации wagtail, для полнотекстового поиска необходимо использовать SearchField, попробуйте заменить index.FilterField на index.SearchField:

class User:

   search_fields = [
        index.SearchField("name", partial_match=True),
        index.SearchField("email", partial_match=True),
    ]
Вернуться на верх