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),
]