PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

tsvector hanya mendukung bahasa Inggris?

Sudah lama sejak saya memainkan ini, tetapi Anda harus membuat ts_vector dalam bahasa yang benar, bukan ts_query.

Jadi ketika Anda memperbarui tabel Anda, gunakan:

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

Anda juga dapat memperluas fungsionalitas dan menggunakan kamus ispell untuk membuat stemming lebih baik ke mesin pencari teks (walaupun masih tidak akan secanggih misalnya Solr)

Untuk melakukannya, unduh kamus ISPELL yaitu mis. terdapat dalam kamus bahasa Jerman OpenOffice

File .oxt sebenarnya adalah file .zip, jadi Anda cukup mengekstrak kontennya.

Kemudian salin file de_DE_frami.dic ke direktori "share/tsearch_data" PostgreSQL sambil mengubah ekstensi menjadi .dict (yang diharapkan PostgreSQL.

Kemudian copy file de_DE_frami.aff ke direktori yang sama, ubah ekstensi menjadi .affix .

Anda perlu mengonversi kedua file (teks) ke UTF-8 agar dapat bekerja dengan PostgreSQL

Kemudian daftarkan kamus tersebut menggunakan:

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;

Setelah selesai, Anda dapat membuat ts_vector menggunakan:

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

Ini juga dijelaskan dalam manual: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. Pembaruan Array JSONB untuk Elemen Tertentu

  2. Batalkan kueri saat ini/aktif di Ruby on Rails

  3. Kembalikan baris dari INSERT dengan ON CONFLICT tanpa perlu memperbarui

  4. Bagaimana cara menambahkan hitungan lari ke baris dalam 'beruntun' hari berturut-turut

  5. Berfungsi untuk menghilangkan aksen di postgreSQL