Phiên kèo bóng đá c1 được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên kèo bóng đá c1 phát triển:18 / Devel
Phiên kèo bóng đá c1 không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
Tài liệu này dành cho phiên kèo bóng đá c1 không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên kèo bóng đá c1 hoặc một trong các phiên kèo bóng đá c1 được hỗ trợ khác được liệt kê ở trên thay thế.

12.3. Kiểm soát tìm kiếm văn kèo bóng đá c1

Để thực hiện tìm kiếm toàn văn, phải có một chức năng đểTSVECTORTừ một tài liệu và mộttsqueryTừ truy vấn người dùng. Ngoài ra, chúng ta cầnPostgreSQLCung cấp hỗ trợ cho

12.3.1. Phân tích cú pháp

PostgreSQLCung cấpTO_TSVECTORchoTSVectorKiểu dữ liệu.

to_tsVector ([ config Regconfig, ]Document Text) trả vềtsVector

TO_TSVECTORPhân tích một văn kèo bóng đá c1tsVector111PostgreSQL: Tài liệu: 8.3: kèo bóng đá c1 bản45

Chọn To_TSVector ('Tiếng Anh', 'Một con mèo béo ngồi trên thảm - nó đã ăn một con chuột béo');

Trong ví dụ trên, chúng ta thấy rằng kết quảtsVectorkhông chứa các từA, trênhoặcIT, từchuộttrở thànhRATvà Dấu chấm câu-đã bị bỏ qua.

TheTO_TSVECTORHàmPhần) được tư vấn, trong đó danh sách có thể thay đổi tùy theoNhận dạngMã thông báo phát ra một hoặc nhiềuLexemeĐể đại diện cho12527_12533trở thànhRATVì một trong những từ điểnchuộtlà aRAT. Một số từ làDừng từ(Phần), khiến chúng bị bỏ qua vì chúng xảy raA, trên,,IT. Nếu không có từ điển trong danh sách-Bởi vì trên thực tế không có từ điểnKhông gian), nghĩa là mã thông báo không gian sẽ không bao giờ được lập chỉ mục. CácPhần 12.7). Nótiếng AnhĐối với tiếng Anh

hàmSetweightCó thểtsVectorvới một đã choTrọng lượng, trong đó trọng lượng làA, B, ChoặcD. Điều này thường được sử dụng để đánh dấu các mục sắp tới

to_tsVector(null) sẽ trả vềnull,,HOUNESCEBất cứ khi nào một trường có thể là null. Đây là phương pháp được đề xuấttsVectortừ một cấu trúc

Cập nhật TT SET TI =

Ở đây chúng tôi đã sử dụngSetweightđếnTSVector, và sau đó hợp nhất được dán nhãnTSVectorGiá trị sử dụngtsVectorToán tử Concatenation||. (Phầncung cấp chi tiết về các hoạt động này.)

12.3.2. Truy vấn phân tích cú pháp

PostgreSQLcung cấpto_tsqueryPlainto_tsqueryđể chuyển đổi atsqueryKiểu dữ liệu.to_tsquerycung cấp quyền truy cập vào nhiều hơnPlainto_tsquery,,

to_tsquery ([ config Regconfig, ]QueryText Text) trả vềtsquery

to_tsqueryTạo AtsqueryGiá trị từQuerytext, phải bao gồm một đơn&(và),|(hoặc) và!(không). Những nhà khai thác này có thểto_tsqueryPhải theo dõitsqueryĐầu vào, nhưPhần. Sự khác biệt là trong khi cơ kèo bóng đá c1tsqueryĐầu vào lấy các mã thông báo theo mệnh giá,to_tsqueryBình thường hóa mỗi mã thông báo

Chọn To_TSQuery ('Tiếng Anh', 'The & Fat & Rats');

như trong cơ kèo bóng đá c1tsqueryĐầu vào, Trọng lượngtsVectorLexeme của những trọng lượng đó. Vì

Chọn To_TSQuery ('Tiếng Anh', 'Chất béo | RATS: AB');

to_tsquerycũng có thể chấp nhậnSupernovae Stars: SN:

chọn to_tsquery ('' 'Supernovae Stars' '&! Crab');

Không có báo giá,to_tsquerySẽ tạo lỗi cú pháp cho các mã thông báo không được phân tách

Plainto_tsquery ([ config Regconfig, ]Querytext Text) Trả vềtsquery

Plainto_tsqueryBiến đổiQuerytextđếntsquery. Văn kèo bóng đá c1 được phân tích cú pháp vàto_tsVector, sau đó&(và) Toán tử Boolean được chèn vào giữa

Ví dụ:

Chọn Plainto_tsquery ('Tiếng Anh', 'Chuột béo');

Lưu ý rằng​​Plainto_tsqueryKhông thể nhận ra các toán tử boolean hoặc nhãn trọng lượng trong

Chọn Plainto_tsquery ('Tiếng Anh', 'The Fat & Rats: C');

Ở đây, tất cả các dấu câu đầu vào đã bị loại bỏ là không gian

12.3.3. Kết quả tìm kiếm xếp hạng

Xếp hạng cố gắng đo lường mức độPostgreSQLCung cấp hai thứ hạng được xác định trước

Hai chức năng xếp hạng hiện có là:

ts_rank ([ Trọng lượng float4 [], ]Vector tsVector, Truy vấn tsquery[, chuẩn hóa Số nguyên ]) trả vềfloat4

Hàm xếp hạng tiêu chuẩn.

TS_RANK_CD ([ Trọng lượng float4 [], ]Vector tsVector, Truy vấn tsquery[, Bình thường hóa Số nguyên ]) Trả vềfloat4

Hàm này tính toánBìaXếp hạng cho vectơ tài liệu đã cho và

Hàm này yêu cầu thông tin vị trí trong nó"Dải" tsVectorGiá trị - Nó sẽ luôn trả về 0.

Đối với cả hai chức năng này, tùy chọnTrọng lượngĐối số cung cấp khả năng

d-weight, c-weight, b-weight, a-weight

nếu khôngTrọng lượngđược cung cấp,

0.1, 0.2, 0.4, 1.0

Thông thường trọng lượng được sử dụng để đánh dấu các từ từ các khu vực đặc biệt

Vì một tài liệu dài hơn có cơ hội chứa mộtBình thường hóaTùy chọn đó|(ví dụ:2|4).

  • 0 (mặc định) bỏ qua độ dài tài liệu

  • 1 Chia thứ hạng cho 1 + logarit của tài liệu

  • 2 Chia thứ hạng cho độ dài tài liệu

  • 24538_24642TS_RANK_CD)

  • 8 Chia thứ hạng cho số lượng từ duy nhất trong

  • 16 Chia thứ hạng cho 1 + logarit của số

  • 32 chia thứ hạng cho chính nó + 1

Nếu có nhiều hơn một bit cờ được chỉ định, các phép biến đổi

Điều quan trọng cần lưu ý là các chức năng xếp hạng khôngXếp hạng/(Xếp hạng+1)) có thể được áp dụng để tỷ lệ tất cả các cấp bậc

Đây là một ví dụ chỉ chọn mười thứ hạng cao nhất

Chọn Tiêu đề, TS_RANK_CD (TextSearch, Truy vấn)

Đây là ví dụ tương tự bằng cách sử dụng xếp hạng chuẩn hóa:

Chọn Tiêu đề, TS_RANK_CD (TextSearch, Truy vấn, 32/ * Xếp hạng/(Xếp hạng+1) */)

Xếp hạng có thể tốn kém vì nó yêu cầu tư vấntsVectorcủa mỗi tài liệu phù hợp, trong đó

12.3.4. Kết quả làm nổi bật

Để trình bày kết quả tìm kiếm, thật lý tưởng khi hiển thị một phần của mỗi phầnPostgreSQLcung cấp ats_headlineĐiều đó

ts_headline ([ config Regconfig, ]Document Text, Truy vấn tsquery[, Tùy chọn Text ]) trả vềText

ts_headlineChấp nhận một tài liệuconfig; nếu nhưconfigbị bỏ qua,default_text_search_configCấu hình là

Nếu mộtTùy chọnChuỗi làTùy chọn=giá trịcặp.

  • STARTSEL, Stopsel: Các chuỗi mà các từ truy vấn nào

  • Maxwords, Minwords: Những con số này xác định

  • Từ ngắn: Các từ có độ dài này

  • nổi bật: Cờ Boolean; nếu nhưTRUEToàn bộ tài liệu sẽ

Bất kỳ tùy chọn không xác định nào nhận được các mặc định này:

30789_30890

Ví dụ:

Chọn TS_Headline ('Tiếng Anh', 'Loại tìm kiếm phổ biến nhất

ts_headlineSử dụng kèo bóng đá c1 gốcTSVECTORTóm tắt, vì vậy nóts_headlinechoEveryKết hợpSQLSqueries có thể giúp;

Chọn ID, TS_headline (Body, Q), Xếp hạng