PostgreSQL: soi kèo bóng đá truoctran liệu: | |||
---|---|---|---|
prev | UP | Chương 8. Kiểu dữ liệu | Tiếp theo |
PostgreSQLCung cấp hai cách đọc kèo bóng đá dữ liệu được thiết kế để hỗ trợ tìm kiếm toàn văn, là hoạt động tìm kiếm thông qua bộ sưu tập ngôn ngữ tự nhiênTài liệuĐể định vị những người phù hợp nhất với ATruy vấn. ThetsVectorLoại đại diện cho một tài liệu trong một biểu mẫu được tối ưu hóa để tìm kiếm văn cách đọc kèo bóng đá; ThetsqueryLoại đại diện tương tự một truy vấn văn cách đọc kèo bóng đá.Chương 12Cung cấp một lời giải thích chi tiết về cơ sở này vàPhần 9.13Tóm tắt các chức năng và toán tử liên quan.
AtsVectorGiá trị là danh sách được sắp xếp của riêng biệtLexeme, đó là những từ đã đượcchuẩn hóaĐể hợp nhất các biến thể khác nhau của cùng một từ (xemChương 12Để biết chi tiết). Sắp xếp và cách đọc kèo bóng đá bỏ trùng lặp được thực hiện tự động trong quá trình nhập, như trong ví dụ này:
Chọn 'Một con mèo béo ngồi trên thảm và ăn một con chuột béo' :: tsvector;
10936_11023
Chọn $$ Lexeme '' chứa khoảng trắng $$ :: tsvector;
11250_11448
Chọn $$ Lexeme 'Joe' '' chứa một trích dẫn $$ :: tsvector;
Tùy chọn, Số nguyênVị trícó thể được gắn vào từ vựng:
11808_12099
Một vị trí thường chỉ ra vị trí của từ nguồn trong tài liệu. Thông tin vị trí có thể được sử dụng choXếp hạng gần. Giá trị vị trí có thể nằm trong khoảng từ 1 đến 16383;
Lexeme có vị trí có thể được dán nhãn thêm mộtTrọng lượng, có thể làA, B, ChoặcD. Dlà mặc định và do đó không được hiển thị trên đầu ra:
Chọn 'A: 1a béo: 2B, 4C CAT: 5D' :: TSVECTOR;
Trọng lượng thường được sử dụng để phản ánh cấu trúc tài liệu, ví dụ bằng cách đánh dấu các từ tiêu đề khác với các từ cơ thể. Các chức năng xếp hạng tìm kiếm văn cách đọc kèo bóng đá có thể gán các ưu tiên khác nhau cho các điểm đánh dấu trọng lượng khác nhau.
Điều quan trọng là phải hiểu rằngtsVectorLoại cách đọc kèo bóng đá thân không thực hiện bất kỳ chuẩn hóa nào; Nó giả định các từ mà nó được đưa ra được chuẩn hóa một cách thích hợp cho ứng dụng.
Chọn 'Chuột béo' :: TSVector;
Đối với hầu hết các ứng dụng tìm kiếm văn cách đọc kèo bóng đá tiếng Anh, các từ trên sẽ được coi là không bình thường, nhưngTSVECTORKhông quan tâm. Văn cách đọc kèo bóng đá tài liệu thô thường được truyền quaTO_TSVECTOR
Để bình thường hóa các từ một cách thích hợp để cách đọc kèo bóng đá:
chọn to_tsvector ('tiếng Anh', 'chuột béo');
Một lần nữa, xemChương 12Để biết thêm chi tiết.
AtsqueryCửa hàng giá trị sẽ được cách đọc kèo bóng đá và kết hợp chúng để tôn vinh các nhà khai thác Boolean&(và),|(hoặc) và!(không). Dấu ngoặc đơn có thể được sử dụng để thực thi nhóm các nhà khai thác:
Chọn 'Fat & Rat' :: Tsquery;
Trong trường hợp không có dấu ngoặc đơn,!(không) liên kết chặt chẽ nhất và&(và) liên kết chặt chẽ hơn|(hoặc).
Tùy chọn, từ vựng trong AtsqueryCó thể được dán nhãn với một hoặc nhiều chữ cái trọng lượng, điều này hạn chế chúng chỉ phù hợptsVectorLexeme với trọng số phù hợp:
Chọn 'Fat: AB & Cat' :: Tsquery;
Ngoài ra, từ vựng trong AtsqueryCó thể được dán nhãn*Để chỉ định khớp tiền tố:
Chọn 'Super:*' :: TsQuery;
Truy vấn này sẽ khớp với bất kỳ từ nào trong mộttsVectorbắt đầu bằng"Super". Lưu ý rằng tiền tố được xử lý đầu tiên bởi các cấu hình tìm kiếm văn cách đọc kèo bóng đá, có nghĩa là so sánh này trả về đúng:
chọn to_tsvector ('sau đại học') @@ to_tsquery ('Postgres:*');
vìPostgresđược phát triển thànhPostgr:
Chọn To_TSQuery ('Postgres:*');
Sau đó khớp vớisau đại học.
16178_16258tsVector; và, như vớitsVector, Bất kỳ sự chuẩn hóa bắt buộc nào của các từ phải được thực hiện trước khi chuyển đổi thànhtsquerycách đọc kèo bóng đá. Theto_tsquery
Hàm thuận tiện để thực hiện bình thường hóa như vậy:
Chọn To_TSQuery ('Fat: AB & CATS');