0

wagtail 文档说 PostgreSQL 搜索对于相对较小的网站来说是一个不错的选择。文档展示了如何设置搜索后端。

WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    }
}

文档鹡鸰

但是,我正在创建的网站不止一种语言。如何在 WAGTAILSEARCH_BACKEND 中配置其他语言?

'SEARCH_CONFIG': ['english', 'dutch'] 可能吗?文档没有说什么。

4

2 回答 2

0

I think I found howto. Would be nice if to see it confirmed. Wagtail has this from wagtail.search.backends import get_search_backend

If you look at the source code you can see that you can define a backend when calling this function

s = get_search_backend(backend=default)

So you can switch backend on the fly by first calling this function and switch to some other backend on basis of the language.

Wagtail is so cool!

于 2019-12-08T10:04:58.343 回答
0

回答一个老问题,但也许有人发现这很有用,因为我刚刚遇到了这个需求。

在默认(保留为备用)之后,使用语言代码为每种语言创建一个后端配置。

WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    },
    'en': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    },
    'nl': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'dutch',
    },
}

现在您可以从以下位置获取当前语言的后端

s = get_search_backend(backend=Locale.get_active().language_code)

这些是 POSTGRES 中的默认语言

$ psql -c "\dF"

架构 | 姓名 | 说明 ------------+------------+----------- ---------------- pg_catalog | 丹麦语 | 丹麦语pg_catalog的配置| 荷兰语 | 荷兰语 pg_catalog 的配置 | 英语 | 英语语言pg_catalog的配置| 芬兰语 | 芬兰语配置 pg_catalog | 法语 | 法语配置 pg_catalog | 德语 | 德语配置 pg_catalog | 匈牙利语| 匈牙利语配置 pg_catalog | 意大利语 | 意大利语配置 pg_catalog | 挪威语| 挪威语配置 pg_catalog | 葡萄牙语 | 葡萄牙语配置 pg_catalog | 罗马尼亚语| 罗马尼亚语 pg_catalog 的配置 | 俄语 | 俄语配置 语言 pg_catalog | 简单 | 简单配置 pg_catalog | 西班牙语 | 西班牙语配置 pg_catalog | 瑞典语 | 瑞典语配置 pg_catalog | 土耳其语 | 土耳其语配置

于 2021-08-02T12:07:12.753 回答