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
cách đọc kèo bóng đá 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 cách đọc kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

cách đọc kèo bóng đáF.31. PG_TRGM

ThePG_TRGMMô -đun cung cấp cách đọc kèo bóng đá chức năng và toán tử để xác định sự giống nhau của văn bản chữ và số dựa trên kết hợp Trigram, cũng như cách đọc kèo bóng đá lớp toán tử chỉ mục hỗ trợ tìm kiếm nhanh cách đọc kèo bóng đá chuỗi tương tự.

F.31.1. cách đọc kèo bóng đá khái niệm Trigram (hoặc Trigraph)

Trigram là một nhóm gồm ba ký tự liên tiếp được lấy từ một chuỗi. Chúng ta có thể đo lường sự giống nhau của hai chuỗi bằng cách đếm số lượng trigram mà họ chia sẻ.

Lưu ý: PG_TRGMBỏ qua cách đọc kèo bóng đá ký tự không từ (không phải là Alphanumeric) khi trích xuất Trigrams từ một chuỗi. Mỗi từ được coi là có hai khoảng trắng có tiền tố và một không gian được hậu tố khi xác định tập hợp cách đọc kèo bóng đá trigram có trong chuỗi."CAT""C", "CA", "CAT""at". Tập hợp cách đọc kèo bóng đá trigram trong chuỗi"foo | Bar""f", "fo", "foo", "OO", "B", "BA", "Bar""AR".

F.31.2. Chức năng và toán tử

cách đọc kèo bóng đá chức năng được cung cấp bởiPG_TRGMMô -đun được hiển thị trongBảng F-25, toán tử trongBảng F-26.

Bảng F-25.PG_TRGMChức năng

function return Mô tả
Tương tự (văn bản, văn bản) Real Trả về một số cho biết hai đối số tương tự như thế nào. Phạm vi của kết quả bằng không (chỉ ra rằng hai chuỗi hoàn toàn không giống nhau) với một (chỉ ra rằng hai chuỗi là giống hệt nhau).
show_trgm (văn bản) Text [] Trả về một mảng của tất cả cách đọc kèo bóng đá trigram trong chuỗi đã cho. (Trong thực tế, điều này hiếm khi hữu ích ngoại trừ gỡ lỗi.)
word_similarity (văn bản, văn bản) Real 12244_12467
show_limit () Real Trả về ngưỡng tương tự hiện tại được sử dụng bởi%toán tử. Điều này đặt ra sự tương đồng tối thiểu giữa hai từ để chúng được coi là đủ tương tự để là lỗi chính tả của nhau, ví dụ ().
set_limit (real) Real Đặt ngưỡng tương tự hiện tại được sử dụng bởi%toán tử. Ngưỡng phải nằm trong khoảng từ 0 đến 1 (mặc định là 0,3).).

Xem xét ví dụ sau:

# Chọn Word_Similarity ('Word', 'Hai từ');

Trong chuỗi đầu tiên, tập hợp cách đọc kèo bóng đá trigram là"w", "wo", "ord", "wor", "rd". Trong chuỗi thứ hai, bộ Trigram được đặt hàng là"t", "tw", "hai", "wo", "w", "wo", "wor", "ord", "rds". Mức độ tương tự nhất của một bộ Trigram được đặt hàng trong chuỗi thứ hai là"w", "wo", "wor", "ord"và sự tương đồng là0.8.

Hàm này trả về một giá trị có thể được hiểu xấp xỉ là điểm tương đồng lớn nhất giữa chuỗi thứ nhất và bất kỳ chuỗi con nào của chuỗi thứ hai. Tuy nhiên, chức năng này không thêm phần đệm vào ranh giới của phạm vi.

Bảng F-26.PG_TRGMtoán tử

Nhà điều hành return Mô tả
Text % Text Boolean returnTRUENếu cách đọc kèo bóng đá đối số của nó có sự tương đồng lớn hơn ngưỡng tương tự hiện tại được đặt bởi.
Text <% Text Boolean returnTRUE15040_15241pg_trgm.word_similarity_thresholdtham số.
Text % Text Boolean <%toán tử.
Text <- Text Real Trả về"Khoảng cách"Giữa cách đọc kèo bóng đá đối số, đó là một trừ điTương tự ()Giá trị.
Text <<- Text Real Trả về"Khoảng cách"Giữa cách đọc kèo bóng đá đối số, đó là một trừ điword_similarity ()giá trị.
Text <- Text Real <<-toán tử.

​​F.31.3. Tham số GUC

(Real)

Đặt ngưỡng tương tự hiện tại được sử dụng bởi%toán tử. Ngưỡng phải nằm trong khoảng từ 0 đến 1 (mặc định là 0,3).

pg_trgm.word_similarity_threshold(Real)

Đặt ngưỡng tương tự từ hiện tại được sử dụng bởi<%%Người vận hành. Ngưỡng phải nằm trong khoảng từ 0 đến 1 (mặc định là 0,6).

F.31.4. Hỗ trợ chỉ cách đọc kèo bóng đá

ThePG_TRGMMô -đun cung cấp cách đọc kèo bóng đá lớp toán tử chỉ số GIST và GIN cho phép bạn tạo một chỉ mục trên cột văn bản cho mục đích tìm kiếm tương tự rất nhanh. cách đọc kèo bóng đá loại chỉ mục này hỗ trợ cách đọc kèo bóng đá toán tử tương tự được mô tả ở trên và hỗ trợ thêm cách đọc kèo bóng đá tìm kiếm chỉ mục dựa trên Trigram chonhư, ilike, ~~*Truy vấn. .

Ví dụ:

Tạo bảng test_trgm (t văn bản);

hoặc

Tạo chỉ cách đọc kèo bóng đá TRGM_IDX trên test_trgm bằng Gin (T Gin_TRGM_OPS);

Tại thời điểm này, bạn sẽ có một chỉ cách đọc kèo bóng đá trênTCột mà bạn có thể sử dụng để tìm kiếm tương tự. Một truy vấn điển hình là

Chọn t, độ tương tự (t, 'Word') như smlWord'

Điều này sẽ trả về tất cả cách đọc kèo bóng đá giá trị trong cột văn bản đủ giống vớiWord, được sắp xếp từ trận đấu tốt nhất đến tồi tệ nhất. Chỉ mục sẽ được sử dụng để biến điều này thành một hoạt động nhanh ngay cả trên cách đọc kèo bóng đá bộ dữ liệu rất lớn.

Một biến thể của truy vấn trên là

Chọn t, t <- 'Word' Như Dist

Điều này có thể được triển khai khá hiệu quả bởi cách đọc kèo bóng đá chỉ mục GIST, nhưng không phải bởi cách đọc kèo bóng đá chỉ mục gin. Nó thường sẽ đánh bại công thức đầu tiên khi chỉ có một số lượng nhỏ cách đọc kèo bóng đá trận đấu gần nhất được muốn.

Ngoài ra bạn có thể sử dụng một chỉ cách đọc kèo bóng đá trênTCột cho độ tương tự từ. Ví dụ:

Chọn t, word_similarity ('Word', t) như SMLWord' <% t

Điều này sẽ trả về tất cả cách đọc kèo bóng đá giá trị trong cột văn bản có phạm vi liên tục trong bộ Trigram được đặt hàng tương ứng đủ giống với bộ Trigram củaWord, được sắp xếp từ trận đấu tốt nhất đến tồi tệ nhất. Chỉ mục sẽ được sử dụng để biến điều này thành một hoạt động nhanh ngay cả trên cách đọc kèo bóng đá bộ dữ liệu rất lớn.

Một biến thể của truy vấn trên là

Chọn T, 'Word' <<- T như Dist

Điều này có thể được triển khai khá hiệu quả bởi cách đọc kèo bóng đá chỉ mục GIST, nhưng không phải bởi cách đọc kèo bóng đá chỉ mục gin.

Bắt đầu trongPostgreSQL9.1, cách đọc kèo bóng đá loại chỉ mục này cũng hỗ trợ tìm kiếm chỉ mục chonhưilike, ví dụ

Chọn * từ test_trgm trong đó t thích '%foo%bar';

Tìm kiếm chỉ cách đọc kèo bóng đá hoạt động bằng cách trích xuất trigram từ chuỗi tìm kiếm và sau đó tìm kiếm chúng trong chỉ cách đọc kèo bóng đá. Càng nhiều trigram trong chuỗi tìm kiếm, tìm kiếm chỉ cách đọc kèo bóng đá càng hiệu quả.

Bắt đầu trongPostgreSQL9.3, cách đọc kèo bóng đá loại chỉ mục này cũng hỗ trợ tìm kiếm chỉ mục cho cách đọc kèo bóng đá kết quả biểu hiện thông thường (~~*Người vận hành), ví dụ

Chọn * từ test_trgm trong đó t ~ '(foo | bar)';

Tìm kiếm chỉ cách đọc kèo bóng đá hoạt động bằng cách trích xuất trigram từ biểu thức chính quy và sau đó tìm kiếm chúng trong chỉ cách đọc kèo bóng đá. Càng nhiều trigram có thể được trích xuất từ ​​biểu thức chính quy, tìm kiếm chỉ cách đọc kèo bóng đá càng hiệu quả.

cho cả hainhưVà cách đọc kèo bóng đá tìm kiếm biểu hiện thông thường, hãy nhớ rằng một mô hình không có trigram có thể trích xuất sẽ thoái hóa thành quét toàn bộ chỉ số.

21485_21627

F.31.5. Tích hợp tìm kiếm văn bản

Kết hợp Trigram là một công cụ rất hữu ích khi được sử dụng cùng với chỉ mục văn bản đầy đủ. Cụ thể, nó có thể giúp nhận ra cách đọc kèo bóng đá từ đầu vào sai chính tả sẽ không được khớp trực tiếp bởi cơ chế tìm kiếm văn bản đầy đủ.

Bước đầu tiên là tạo bảng phụ trợ chứa tất cả cách đọc kèo bóng đá từ duy nhất trong tài liệu:

Tạo cách đọc kèo bóng đá từ bảng khi chọn từ từ

WHEREcách đọc kèo bóng đálà một bảng có trường văn bảnBodyTextmà chúng tôi muốn tìm kiếm. Lý do sử dụngđơn giảnCấu hình vớiTO_TSVECTORHàm, thay vì sử dụng cấu hình dành riêng cho ngôn ngữ, là chúng tôi muốn có một danh sách cách đọc kèo bóng đá từ gốc (unstemmed).

Tiếp theo, tạo chỉ cách đọc kèo bóng đá Trigram trên cột từ:

22704_22768

Bây giờ, AChọnTruy vấn tương tự như ví dụ trước có thể được sử dụng để đề xuất cách đọc kèo bóng đá cách viết cho cách đọc kèo bóng đá từ sai chính tả trong cách đọc kèo bóng đá thuật ngữ tìm kiếm người dùng. Một bài kiểm tra bổ sung hữu ích là yêu cầu cách đọc kèo bóng đá từ đã chọn cũng có độ dài tương tự như từ sai chính tả.

Lưu ý:kể từWordsBảng đã được tạo thành một bảng tĩnh, riêng biệt, nó sẽ cần được tái tạo định kỳ để nó vẫn được cập nhật hợp lý với bộ sưu tập cách đọc kèo bóng đá. Giữ nó chính xác hiện tại thường không cần thiết.

F.31.7. Tác giả

Oleg Bartunov, Moscow, Đại học Moscow, Nga

Teodor Sigaev, Moscow, Delta-Soft Ltd., Nga

Alexander Korotkov, Moscow, Postgres Professional, Nga

cách đọc kèo bóng đá: Christopher Kings-Lynne

Mô-đun này được tài trợ bởi Delta-Soft Ltd., Moscow, Nga.