PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

tsvector chỉ hỗ trợ tiếng Anh?

Tôi đã chơi với cái này một thời gian rồi, nhưng bạn cần tạo ts_vector bằng ngôn ngữ chính xác, không phải ts_query.

Vì vậy, khi bạn cập nhật bảng của mình, hãy sử dụng:

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

Bạn cũng có thể mở rộng chức năng và sử dụng từ điển ispell để tạo nguồn gốc tốt hơn cho công cụ tìm kiếm văn bản (mặc dù nó vẫn sẽ không phức tạp như Solr)

Để làm điều đó, hãy tải xuống từ điển ISPELL, ví dụ:có trong từ điển tiếng Đức OpenOffice

Tệp .oxt thực sự là một tệp .zip, vì vậy bạn có thể chỉ cần trích xuất nội dung của nó.

Sau đó, sao chép tệp de_DE_frami.dic vào thư mục PostgreSQL "share / tsearch_data" trong khi thay đổi phần mở rộng thành .dict (đó là những gì PostgreSQL mong đợi.

Sau đó, sao chép tệp de_DE_frami.aff vào cùng một thư mục, thay đổi phần mở rộng thành .affix .

Bạn cần chuyển đổi cả hai tệp (văn bản) sang UTF-8 để chúng hoạt động với PostgreSQL

Sau đó đăng ký từ điển đó bằng:

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;

Sau khi hoàn tất, bạn có thể tạo ts_vector của mình bằng cách sử dụng:

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

Điều này cũng được mô tả trong sách hướng dẫn: 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. Chỉ định múi giờ để sử dụng làm múi giờ tham chiếu

  2. Hội thảo trên web:Các tính năng mới trong PostgreSQL 11 [Theo dõi]

  3. Nhận ứng dụng có số lượt đánh giá cao nhất kể từ một chuỗi ngày năng động

  4. Cách tốt nhất để đếm các bản ghi theo khoảng thời gian tùy ý trong Rails + Postgres

  5. Rails 3, Heroku:Taps Server Error:PGError:ERROR:chuỗi byte không hợp lệ để mã hóa UTF8:0xba