Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản 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 bản 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 bản hoặc một trong kèo bóng đá cúp c2 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

12.4. kèo bóng đá cúp c2#

Phần này mô tả kèo bóng đá cúp c2 chức năng và toán tử bổ sung hữu ích liên quan đến tìm kiếm văn bản.

12.4.1. Thao tác tài liệu#

Phần 12.3.1cho thấy cách kèo bóng đá cúp c2 tài liệu văn bản thô có thể được chuyển đổi thànhTSVECTORGiá trị.PostgreSQLCũng cung cấp kèo bóng đá cúp c2 chức năng và toán tử có thể được sử dụng để thao tác kèo bóng đá cúp c2 tài liệu đã có trongtsVectorMẫu.

TSVECTOR||tsVector

TheTSVECTORToán tử kết hợp trả về một vectơ kết hợp từ vựng và thông tin vị trí của hai vectơ được đưa ra làm đối số. Vị trí và nhãn trọng lượng được giữ lại trong quá trình nối.to_tsVectorVề sự kết hợp của hai chuỗi tài liệu gốc. .

Một lợi thế của việc sử dụng kết nối ở dạng vectơ, thay vì kết nối văn bản trước khi áp dụngto_tsVector, là bạn có thể sử dụng kèo bóng đá cúp c2 cấu hình khác nhau để phân tích kèo bóng đá cúp c2 phần khác nhau của tài liệu. Ngoài ra, bởi vìSetweightChức năng đánh dấu tất cả kèo bóng đá cúp c2 từ vựng của vectơ đã cho theo cùng một cách, cần phải phân tích văn bản và làmSetweightTrước khi kết nối nếu bạn muốn dán nhãn kèo bóng đá cúp c2 phần khác nhau của tài liệu với kèo bóng đá cúp c2 trọng số khác nhau.

setweight (Vector TSVector, Trọng lượng "Char") trả vềtsVector

SetweightTrả về một bản sao của vectơ đầu vào trong đó mọi vị trí đã được dán nhãn với đã choTrọng lượng, hoặcA, B, ChoặcD. (Dlà mặc định cho kèo bóng đá cúp c2 vectơ mới và do đó không được hiển thị trên đầu ra.) kèo bóng đá cúp c2 nhãn này được giữ lại khi kèo bóng đá cúp c2 vectơ được nối, cho phép kèo bóng đá cúp c2 từ từ kèo bóng đá cúp c2 phần khác nhau của tài liệu được tính theo kèo bóng đá cúp c2 hàm xếp hạng.

Lưu ý rằng kèo bóng đá cúp c2 nhãn trọng lượng áp dụng choVị trí, khôngLexeme. Nếu vectơ đầu vào đã bị tước kèo bóng đá cúp c2 vị trí thìSetweightKhông làm gì.

length (Vector tsVector) trả vềSố nguyên

Trả về số lượng từ vựng được lưu trữ trong vectơ.

Dải (Vector TSVector) trả vềtsVector

Trả về một vectơ liệt kê kèo bóng đá cúp c2 từ vựng giống như vectơ đã cho, nhưng không có bất kỳ thông tin vị trí hoặc trọng lượng nào. Kết quả thường nhỏ hơn nhiều so với một vectơ không có dấu, nhưng nó cũng ít hữu ích hơn.<-(tiếp theo là)tsqueryNhà điều hành sẽ không bao giờ khớp với đầu vào bị tước, vì nó không thể xác định khoảng cách giữa kèo bóng đá cúp c2 lần xuất hiện từ vựng.

Danh sách đầy đủ củaTSVECTORkèo bóng đá cúp c2 hàm liên quan đến có sẵn trongBảng 9.43.

12.4.2. Truy vấn thao túng#

Phần 12.3.2Cho thấy cách kèo bóng đá cúp c2 truy vấn văn bản thô có thể được chuyển đổi thànhtsqueryGiá trị.PostgreSQLCũng cung cấp kèo bóng đá cúp c2 chức năng và toán tử có thể được sử dụng để thao tác kèo bóng đá cúp c2 truy vấn đã có trongtsqueryMẫu.

tsquery&&tsquery

Trả về và kết hợp hai truy vấn đã cho.

tsquery||tsquery

Trả về sự kết hợp của hai truy vấn đã cho.

!!tsquery

Trả về phủ định (không) của truy vấn đã cho.

tsquery<-tsquery

Trả về một truy vấn tìm kiếm một trận đấu với truy vấn đã cho đầu tiên ngay sau đó là một trận đấu với truy vấn đã cho thứ hai, sử dụng<-(tiếp theo là)tsquerytoán tử. Ví dụ:

chọn to_tsquery ('fat') <- to_tsquery ('cat | rat');
tsquery_phrase (Query1 tsquery, Query2 tsquery[,Khoảng cách Số nguyên]) trả vềtsquery

18383_18523Khoảng cáchLexeme, sử dụng<n tsqueryNhà điều hành. Ví dụ:

Chọn tsquery_phrase (to_tsquery ('fat'), to_tsquery ('cat'), 10);
numnode (Truy vấn tsquery) trả vềSố nguyên

Trả về số lượng nút (toán tử cộng với Lexeme) trong Atsquery. Chức kèo bóng đá cúp c2 này hữu ích để xác định xemTruy vấncó ý nghĩa (trả về 0) hoặc chỉ chứa kèo bóng đá cúp c2 từ dừng (trả về 0). Ví dụ:

chọn numnode (plainto_tsquery ('bất kỳ'));
Querytree (Truy vấn tsquery) Trả vềText

Trả về phần của Atsquerycó thể được sử dụng để tìm kiếm một chỉ mục. Hàm này rất hữu ích để phát hiện kèo bóng đá cúp c2 truy vấn không thể vượt qua, ví dụ như kèo bóng đá cúp c2 truy vấn chỉ có chứa kèo bóng đá cúp c2 từ dừng hoặc chỉ kèo bóng đá cúp c2 thuật ngữ bị phủ định.

chọn QueryTree (to_tsquery ('xác định'));

12.4.2.1. Quan lại truy vấn#

TheTS_REWRITEGia đình chức kèo bóng đá cúp c2 Tìm kiếm một đã chotsquery21024_21152tsquery-Pecific phiên bản thay thế chuỗi con. Một kết hợp mục tiêu và thay thế có thể được coi làQuy tắc viết lại truy vấn. Một bộ sưu tập kèo bóng đá cúp c2 quy tắc viết lại như vậy có thể là một hỗ trợ tìm kiếm mạnh mẽ.New York, Big Apple, NYC, Gotham) hoặc thu hẹp tìm kiếm để hướng người dùng đến một số chủ đề nóng. Có một số sự chồng chéo về chức kèo bóng đá cúp c2 giữa tính kèo bóng đá cúp c2 này và từ điển từ điển (Phần 12.6.4). Tuy nhiên, bạn có thể sửa đổi một tập hợp kèo bóng đá cúp c2 quy tắc viết lại trên đường bay mà không cần tái hiện

ts_rewrite (Truy vấn tsquery, Target tsquery, Thay thế tsquery) trả vềtsquery

Hình thức này củats_rewriteChỉ cần áp dụng một quy tắc viết lại duy nhất:Targetđược thay thế bởiThay thếBất cứ nơi nào nó xuất hiện trongTruy vấn. Ví dụ:

22855_22967
ts_rewrite (Truy vấn tsquery, Chọn Text) trả vềtsquery

Hình thức này củats_rewriteChấp nhận bắt đầuTruy vấnvà SQLChọnlệnh, được đưa ra dưới dạng chuỗi văn bản. TheChọnPhải mang lại hai cộttsqueryLoại. Cho mỗi hàng củaChọnKết quả, sự xuất hiện của giá trị cột thứ nhất (mục tiêu) được thay thế bằng giá trị cột thứ hai (thay thế) trong hiện tại hiện tạiTruy vấnGiá trị. Ví dụ:

Tạo kèo bóng đá cúp c2 bí danh bảng (khóa chính T TSQuery, S tsquery);

Lưu ý rằng khi nhiều quy tắc viết lại được áp dụng theo cách này, thứ tự ứng dụng có thể quan trọng; Vì vậy, trong thực tế, bạn sẽ muốn truy vấn nguồnĐặt hàng bởiMột số khóa đặt hàng.

Hãy xem xét một ví dụ thiên văn ngoài đời thực. Chúng tôi sẽ mở rộng truy vấnSupernovaeSử dụng kèo bóng đá cúp c2 quy tắc viết lại dựa trên bảng:

Tạo kèo bóng đá cúp c2 bí danh bảng (T TSQuery Key chính, S tsquery);

Chúng ta có thể thay đổi kèo bóng đá cúp c2 quy tắc viết lại chỉ bằng cách cập nhật bảng:

Cập nhật bí danh

Viết lại có thể chậm khi có nhiều quy tắc viết lại, vì nó kiểm tra mọi quy tắc cho một trận đấu có thể. Để lọc ra kèo bóng đá cúp c2 quy tắc không ứng cử viên rõ ràng, chúng ta có thể sử dụng kèo bóng đá cúp c2 toán tử ngăn chặn chotsqueryLoại. Trong ví dụ dưới đây, chúng tôi chỉ chọn những quy tắc có thể khớp với truy vấn ban đầu:

Chọn TS_REWRITE ('A & B' :: Tsquery,

12.4.3. Trình kích hoạt để cập nhật tự động#

Lưu ý

Phương pháp được mô tả trong phần này đã bị lỗi thời bởi việc sử dụng kèo bóng đá cúp c2 cột được tạo được lưu trữ, như được mô tả trongPhần 12.2.2.

Khi sử dụng một cột riêng để lưu trữtsVectorĐại diện cho kèo bóng đá cúp c2 tài liệu của bạn, cần phải tạo một kích hoạt để cập nhậtTSVECTORCột Khi kèo bóng đá cúp c2 cột nội dung tài liệu thay đổi. Hai chức năng kích hoạt tích hợp có sẵn cho việc này hoặc bạn có thể tự viết.

tsVector_update_trigger (TSVector_Column_Name,CONFIG_NAME, text_column_name[, ...])tsVector_column_name,config_column_name, text_column_name[, ...])

kèo bóng đá cúp c2 chức năng kích hoạt này tự động tính toán ATSVectorCột từ một hoặc nhiều cột văn bản, dưới sự kiểm soát của kèo bóng đá cúp c2 tham số được chỉ định trongTạo TriggerLệnh. Một ví dụ về việc sử dụng của họ là:

Tạo tin nhắn bảng (

Đã tạo trình kích hoạt này, bất kỳ thay đổi nào trongTiêu đềhoặcBodysẽ tự động được phản ánh thànhTSV, mà không cần phải lo lắng về nó.

Đối số kích hoạt đầu tiên phải là tên củaTSVECTORCột sẽ được cập nhật. Đối số thứ hai chỉ định cấu hình tìm kiếm văn bản được sử dụng để thực hiện chuyển đổi.TSVECTOR_UPDATE_TRIGGER, tên cấu hình chỉ đơn giản là đối số kích hoạt thứ hai. Nó phải được định mức lược đồ như được hiển thị ở trên, do đó hành vi kích hoạt sẽ không thay đổi với kèo bóng đá cúp c2 thay đổi trongsearch_path. VìTSVector_Update_Trigger_Column, Đối số kích hoạt thứ hai là tên của một cột bảng khác, phải thuộc loạiRegconfig. Điều này cho phép một lựa chọn cấu hình trên mỗi hàng được thực hiện.Text, VarcharhoặcChar). Chúng sẽ được bao gồm trong tài liệu theo thứ tự được đưa ra.

Giới hạn của kèo bóng đá cúp c2 kích hoạt tích hợp này là chúng đối xử với tất cả kèo bóng đá cúp c2 cột đầu vào. Để xử lý kèo bóng đá cúp c2 cột khác nhau - ví dụ, tiêu đề trọng lượng khác với TSV - cần phải viết một kích hoạt tùy chỉnh.PL/PGSQLlàm ngôn ngữ kích hoạt:

Tạo hàm message_trigger () trả về kích hoạt dưới dạng $$

Hãy nhớ rằng điều quan trọng là chỉ định tên cấu hình rõ ràng khi tạoTSVECTORGiá trị bên trong kèo bóng đá cúp c2 kích hoạt, để nội dung của cột sẽ không bị ảnh hưởng bởi kèo bóng đá cúp c2 thay đổi thànhdefault_text_search_config. Việc không làm điều này có khả năng dẫn đến kèo bóng đá cúp c2 vấn đề như kết quả tìm kiếm thay đổi sau khi kết xuất và khôi phục.

12.4.4. Thu thập thống kê tài liệu#

hàmts_statrất hữu ích cho việc kiểm tra cấu hình của bạn và tìm ứng viên từ dừng.

ts_stat (SQLQuery Text, [ Trọng lượng Text, ]Word Text, OUTNDOC Số nguyên,,Nentry Số nguyên) Trả vềSETOF Record

SQLQuerylà giá trị văn bản chứa truy vấn SQL phải trả về mộttsVectorcột.ts_statThực thi truy vấn và trả về số liệu thống kê về từng từ vựng riêng biệt (từ) có trongtsVectorDữ liệu. kèo bóng đá cúp c2 cột được trả về là

  • Word Text- Giá trị của từ vựng

  • ndoc Số nguyên- số lượng tài liệu (tsVectorS) Từ xảy ra trong

  • Nentry Số nguyên- Tổng số lần xuất hiện của từ

nếuTrọng lượngđược cung cấp, chỉ có một trong những trọng số đó được kèo bóng đá cúp c2.

Ví dụ: để tìm mười từ thường xuyên nhất trong bộ sưu tập tài liệu:

Chọn * từ TS_STAT ('Chọn Vector từ APOD')

giống nhau, nhưng chỉ đếm kèo bóng đá cúp c2 từ xuất hiện với trọng lượngAhoặcB:

Chọn * từ ts_stat ('chọn vectơ từ apod', 'ab'))