Phiên kèo chấp bóng đá hôm nay được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên kèo chấp bóng đá hôm nay phát triển:18 / Devel
Phiên kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay hoặc một trong các phiên kèo chấp bóng đá hôm nay đượ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 chấp bóng đá hôm nay

Để 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 chấp bóng đá hôm naytsVector111PostgreSQL: Tài liệu: 8.4: kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm naytsqueryĐầ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 chấp bóng đá hôm naytsqueryĐầ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');

Ngoài ra,*có thể được gắn vào từ vựng

Chọn To_TSQuery ('Supern:*A & Star: A*B');

Một từ vựng như vậy sẽ phù hợp với bất kỳ từ nào trong mộttsVectorbắt đầu bằng chuỗi đã cho.

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 chấp bóng đá hôm nay đượ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ằngPlainto_tsqueryKhông thể nhận ra các toán tử Boolean, nhãn trọng lượng hoặc

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[, Bình thường 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

  • 4 Chia thứ hạng cho khoảng cách hài hòa trung bình giữaTS_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 thứ hạng, 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 thứ hạng, 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, rất lý tưởng để 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 để phân định

  • 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ẽ

  • MaxFragments: Số lượng tối đa củaMaxwordsvà các từ có độ dàiShortwordhoặc ít hơn bị loại bỏ khi bắt đầuminwordsTrong tài liệu sẽ

  • FragmentDelImiter: khi nhiều hơn

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

startsel = <b, stopsel = </b,

Ví dụ:

Chọn TS_headline ('Tiếng Anh',

ts_headlineSử dụng kèo chấp bóng đá hôm nay gốctsVectorTóm tắt, vì vậy nóts_headlinechoMỗiKết hợpSQLSqueries có thể giúp đỡ;

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