我正在尝试使用 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),
]