Wagtail 和 Elasticsearch,查找“icontains””无法识别

问题描述 投票:0回答:1

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

如何修复?

python django elasticsearch wagtail
1个回答
0
投票

根据wagtail文档,需要使用

SearchField
进行全文检索,尝试将
index.FilterField
替换为
index.SearchField

class User:

   search_fields = [
        index.SearchField("name", partial_match=True),
        index.SearchField("email", partial_match=True),
    ]
© www.soinside.com 2019 - 2024. All rights reserved.