使用希腊字符搜索 Django



我在django应用程序中尝试了很多后端,总是使用unaccent扩展。

django 文档提到,如果你搜索这个:

Author.objects.filter(name__unaccent__icontains='Helen')
You get this:
[<Author: Helen Mirren>, <Author: Helena Bonham Carter>, <Author: Hélène Joy>]

但是这怎么能也适用于希腊字符呢? 我有一个标题='σουπερ'的产品,当我像这样搜索时

Product.objects.filter(title_el__unaccent__icontains='σουπερ')

我明白这个:

<ProductQuerySet [<Product: σουπερ>]>

但是如果我像这样搜索:

Product.objects.filter(title_el__unaccent__icontains='σούπερ')

我明白这个:

<ProductQuerySet []>

所以也许取消重音仅适用于英文字符(django 文档中的西班牙语是英文字符(?如果是这样,我如何为希腊字符扩展此功能?

PostgreSQL 12 unaccent 支持开箱即用的希腊字符,对于较低版本,您应该自己添加规则

来自非重音文档

RULES 是包含翻译列表的文件的基本名称 规则。此文件必须存储在 $SHAREDIR/tsearch_data/中(其中 $SHAREDIR 表示 PostgreSQL 安装的共享数据目录(。 它的名称必须以 .rules 结尾(这不包括在规则中( 参数(。

您可以使用已在评论中链接的要点文件

最新更新