Products

Polskie wyszukiwanie pełnotekstowe

Słownik sjp.pl dla Postgres FTS: odmiana, stop-słowa, wariant bez ogonków, kolumna tsvector z indeksem GIN.

This page is available in Polish only for now. The commands, code and API calls below are the same in every language — an English translation is on its way. Open the Polish page

Postgres nie ma wbudowanej konfiguracji wyszukiwania dla polskiego. HostBase dostarcza słownik hunspell z sjp.pl; instalacja w Integracje → Polskie wyszukiwanie tworzy:

  • public.polish_ispell — słownik ispell (formy podstawowe i stop-słowa),
  • public.polish — konfiguracja: słownik + fallback simple dla słów spoza słownika,
  • public.polish_unaccent — bez odmiany, ignoruje ogonki („zolw” = „żółw”).
select to_tsvector('public.polish', 'Koty biegały po zielonych łąkach');

Kolumna wyszukiwania

alter table artykuly add column fts tsvector generated always as (
  setweight(to_tsvector('public.polish', coalesce(tytul, '')), 'A') ||
  setweight(to_tsvector('public.polish', coalesce(tresc, '')), 'B')
) stored;
create index on artykuly using gin (fts);

Zapytania

const { data } = await supabase
  .from("artykuly")
  .select("id, tytul")
  .textSearch("fts", "zielone łąki -miasto", { type: "websearch", config: "polish" });

W SQL: websearch_to_tsquery('public.polish', 'zielone łąki'), ranking ts_rank_cd, fragmenty z podświetleniem ts_headline. Plac zabaw w panelu pokazuje wyniki i wygenerowane tsquery.