tsvector
Sử dụng tsvector
loại, là một phần của tính năng tìm kiếm văn bản PostgreSQL.
postgres> select 'What are Q-type Operations?'::tsvector;
tsvector
-------------------------------------
'Operations?' 'Q-type' 'What' 'are'
(1 row)
Bạn cũng có thể sử dụng các toán tử quen thuộc trên tsvectors:
postgres> select 'What are Q-type Operations?'::tsvector
postgres> || 'A.B.C''s of Coding'::tsvector;
?column?
--------------------------------------------------------------
'A.B.C''s' 'Coding' 'Operations?' 'Q-type' 'What' 'are' 'of'
Nếu bạn cũng muốn thực hiện chuẩn hóa theo ngôn ngữ cụ thể, chẳng hạn như xóa các từ phổ biến ('the', 'a', v.v.) và các phép nhân, hãy sử dụng to_tsvector
hàm số. Nó cũng gán trọng số cho các từ khác nhau để tìm kiếm văn bản:
postgres> select to_tsvector('english',
postgres> 'What are Q-type Operations? A.B.C''s of Coding');
to_tsvector
--------------------------------------------------------
'a.b.c':7 'code':10 'oper':6 'q':4 'q-type':3 'type':5
(1 row)
Tìm kiếm toàn văn
Rõ ràng làm điều này cho mọi hàng trong một truy vấn sẽ rất tốn kém - vì vậy bạn nên lưu trữ tsvector trong một cột riêng biệt và sử dụng ts_query () để tìm kiếm nó. Điều này cũng cho phép bạn tạo chỉ mục GiST trên tsvector.
postgres> insert into text (phrase, tsvec)
postgres> values('What are Q-type Operations?',
postgres> to_tsvector('english', 'What are Q-type Operations?'));
INSERT 0 1
Tìm kiếm được thực hiện bằng tsquery và toán tử @@:
postgres> select phrase from text where tsvec @@ to_tsquery('q-type');
phrase
-----------------------------
What are Q-type Operations?
(1 row)