PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

tsvector obsługuje tylko język angielski?

Minęło trochę czasu, odkąd się tym bawiłem, ale musisz utworzyć wektor ts_vector w odpowiednim języku, a nie ts_query.

Więc kiedy aktualizujesz tabelę, użyj:

UPDATE blog_entry SET body_tsv=to_tsvector('german', body);

Możesz także rozszerzyć funkcjonalność i użyć słownika ispell, aby uczynić stemming lepszym dla wyszukiwarki tekstowej (chociaż nadal nie będzie tak wyrafinowany jak np. Solr)

W tym celu należy pobrać słownik ISPELL, czyli m.in. zawarte w niemieckim słowniku OpenOffice

Plik .oxt jest w rzeczywistości plikiem .zip, więc możesz po prostu wyodrębnić jego zawartość.

Następnie skopiuj plik de_DE_frami.dic do katalogu "share/tsearch_data" PostgreSQL podczas zmiany rozszerzenia na .dict (czego oczekuje PostgreSQL.

Następnie skopiuj plik de_DE_frami.aff do tego samego katalogu, zmieniając rozszerzenie na .affix .

Musisz przekonwertować oba pliki (tekstowe) na UTF-8, aby działały z PostgreSQL

Następnie zarejestruj ten słownik za pomocą:

CREATE TEXT SEARCH CONFIGURATION de_config (copy=german);

CREATE TEXT SEARCH DICTIONARY german_stem (
    TEMPLATE = snowball,
    Language = german
);

CREATE TEXT SEARCH DICTIONARY german_ispell (
    TEMPLATE = ispell,
    dictfile = de_DE_frami,
    afffile = de_de_frami
);

alter text search configuration de_config 
     alter mapping for asciiword WITH german_ispell, german_stem;

Gdy to zrobisz, możesz utworzyć swój wektor ts_vector za pomocą:

UPDATE blog_entry SET body_tsv=to_tsvector('de_config', body);

Jest to również opisane w instrukcji:http ://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosta konfiguracja replikacji Slony-I.

  2. plpgsql PostgreSQL pobierz aktualne procedury oid

  3. NLlogowanie do połączenia PostgreSQL

  4. Tworzenie PostgreSQL dla Windows, część 2

  5. Używanie tabeli tymczasowej do zastąpienia klauzuli WHERE IN