Søkefunksjon

Søk rutes til django-appen som ligger i src/search.

Vi har lagt til Wagtails PostgreSQL-søkebackend for å få bedre søkeresultat. Wagtails generelle database-søkebackend, som brukes som default, lar oss kun søke i sidens tittel.

Installasjon og konfigurasjon

Søkebackenden er lagt til i INSTALLED_APPS i settings.py:

INSTALLED_APPS = [
    ...
    'wagtail.contrib.postgres_search',
    ...
]

og satt til å være default søkemotor, samt bruke norske regler for søk:

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

Norske søkeregler gjør at man kan søke på «figuren» og få treff på sider som kun inneholder «figur» og omvendt.

Hvilke språk som støttes i PostgreSQL vises ved å kjøre \dF i SQL-skallet:

$ psql -c "\dF"
               List of text search configurations
   Schema   |    Name    |              Description
------------+------------+---------------------------------------
 pg_catalog | danish     | configuration for danish language
 pg_catalog | dutch      | configuration for dutch language
 pg_catalog | english    | configuration for english language
 pg_catalog | finnish    | configuration for finnish language
 pg_catalog | french     | configuration for french language
 pg_catalog | german     | configuration for german language
 pg_catalog | hungarian  | configuration for hungarian language
 pg_catalog | italian    | configuration for italian language
 pg_catalog | norwegian  | configuration for norwegian language
 pg_catalog | portuguese | configuration for portuguese language
 pg_catalog | romanian   | configuration for romanian language
 pg_catalog | russian    | configuration for russian language
 pg_catalog | simple     | simple configuration
 pg_catalog | spanish    | configuration for spanish language
 pg_catalog | swedish    | configuration for swedish language
 pg_catalog | turkish    | configuration for turkish language
(16 rows)

Se Wagtail-dokumentasjonen for mer informasjon.

Utseende

Templaten for søkeresultatsiden er endret til å arve fra base_with_nav.html slik at den har samme utseende som en vanlig artikkel (navigasjonsmeny etc.).

Sammen med søkeresultatet viser vi også antall søketreff.

Andre tilpasninger

Fordi vi vil ha muligheten til å hoste flere nettsteder i samme Wagtail-installasjon, er søkealgoritmen endret til å kun gi treff i artikler som hører til samme nettsted som man gjør søket fra. Detaljer i changeset c25731b21194.

Wagtail krasjer når søkestrengen består av kun et eller flere mellomrom. For å omgå denne bugen fjerner vi mellomrom fra endene av søkestrengen før søk. Se changeset 8fe33ef25f49.