Chỉ cần gặp sự cố. Tôi đang cố gắng thiết lập tìm kiếm toàn văn bản trên nội dung được bản địa hóa (đặc biệt là tiếng Nga). Vấn đề là cấu hình mặc định (cũng như tùy chỉnh của tôi) không xử lý các trường hợp chữ cái. Ví dụ:Mã thông báo tìm kiếm toàn văn Postgresql
SELECT * from to_tsvector('test_russian', 'На рынке появились новые рублевые облигации');
> 'На':1 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
'На' là một từ dừng và cần được loại bỏ, nhưng thậm chí không được hạ thấp trong vector kết quả. Nếu tôi vượt qua lowercased chuỗi, tất cả các hoạt động đúng
SELECT * from to_tsvector('test_russian', 'на рынке появились новые рублевые облигации');
> 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
Chắc chắn tôi có thể vượt qua chuỗi trước lowercased, nhưng tay nói
Mẫu từ điển đơn giản hoạt động bằng cách chuyển đổi các đầu vào thẻ để giảm trường hợp và kiểm tra nó chống lại một tập tin của các từ dừng lại.
Config russian_test
trông như thế này:
create text search CONFIGURATION test_russian (COPY = 'russian');
CREATE TEXT SEARCH DICTIONARY russian_simple (
TEMPLATE = pg_catalog.simple,
STOPWORDS = russian
);
CREATE TEXT SEARCH DICTIONARY russian_snowball (
TEMPLATE = snowball,
Language = russian,
StopWords = russian
);
alter text search configuration test_russian
alter mapping for word
with russian_simple,russian_snowball;
Nhưng tôi thực sự nhận được chính xác kết quả tương tự với built-in russian
config.
Tôi đã thử ts_debug và mã thông báo được coi là word
, như tôi mong đợi.
Bất kỳ ý tưởng nào?