Skip to content
Snippets Groups Projects
Commit 4a2205ee authored by jan.bednarik's avatar jan.bednarik
Browse files

majak: Czech fulltext search setup

parent 3e587ca8
No related branches found
No related tags found
2 merge requests!392release,!391Volby
......@@ -127,6 +127,7 @@ Různé:
| --- | --- | --- |
| `MAJAK_ENV` | prod | `prod`/`test`/`dev` prostředí kde Maják běží |
| `SENTRY_DSN` | | pokud je zadáno, pády se reportují do Sentry |
| `SEARCH_CONFIG` | english | nastavení jazyka fulltextového vyhledávání, viz níže |
Settings pro appky na weby:
......@@ -144,6 +145,30 @@ Přes CRON je třeba na pozadí spouštět Django `manage.py` commandy:
* `publish_scheduled_pages` - publikuje naplánované stránky (každou hodinu)
* `update_callendars` - stáhne a aktualizuje kalendáře (několikrát denně)
### Fulltextové vyhledávání v češtině
Pro fulltextové vyhledávání je třeba do PostgreSQL přidat
[slovníky](https://github.com/f00b4r/postgresql-czech) do adresáře
`/usr/local/share/postgresql/tsearch_data/`.
V databázi Majáku je třeba nakonfigurovat český fulltext:
```sql
CREATE TEXT SEARCH DICTIONARY cspell (template=ispell, dictfile=czech, afffile=czech, stopwords=czech);
CREATE TEXT SEARCH CONFIGURATION czech (copy=english);
ALTER TEXT SEARCH CONFIGURATION czech ALTER MAPPING FOR word, asciiword WITH cspell, simple;
```
Otestovat funkčnost lze dotazem:
```sql
SELECT * FROM ts_debug('czech', 'Příliš žluťoučký kůň se napil žluté vody');
```
Dále nastavit environment proměnnou `SEARCH_CONFIG=czech`. A nakonec jednorázově
spustit naplnění indexu pro vyhledávání `python manage.py update_index`.
Aktualizace indexu poté probíhají automaticky při uložení stránek.
### Přidání nového webu
Doména či subdoména se musí nakonfigurovat v:
......
......@@ -59,6 +59,7 @@ INSTALLED_APPS = [
"wagtail.contrib.modeladmin",
"wagtail.contrib.table_block",
"wagtail.contrib.routable_page",
"wagtail.contrib.postgres_search",
"wagtail.embeds",
"wagtail.sites",
"wagtail.users",
......@@ -224,6 +225,13 @@ WAGTAILUSERS_PASSWORD_ENABLED = False
WAGTAILUSERS_PASSWORD_REQUIRED = False
WAGTAIL_EMAIL_MANAGEMENT_ENABLED = False
WAGTAILSEARCH_BACKENDS = {
"default": {
"BACKEND": "wagtail.contrib.postgres_search.backend",
"SEARCH_CONFIG": env.str("SEARCH_CONFIG", default="english"),
}
}
# Base URL to use when referring to full URLs within the Wagtail admin backend -
# e.g. in notification emails. Don't include '/admin' or a trailing slash
BASE_URL = env.str("BASE_URL", default="https://majak.pirati.cz")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment