ThePG_TRGM
Mô -đun cung cấp kèo tỷ số bóng đá euro hôm nay 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ư kèo tỷ số bóng đá euro hôm nay lớp toán tử chỉ mục hỗ trợ tìm kiếm nhanh kèo tỷ số bóng đá euro hôm nay chuỗi tương tự.
Trigram là kèo tỷ số bóng đá euro hôm nay nhóm gồm ba ký tự liên tiếp được lấy từ kèo tỷ số bóng đá euro hôm nay 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ẻ.
PG_TRGM
Bỏ qua kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay trigram có trong chuỗi.CAT
HồilàC
Hồi, CA
Hồi, HồiCAT
Hồivàat
Hồi. Tập hợp kèo tỷ số bóng đá euro hôm nay trigram trong chuỗifoo | Bar
làf
xông, fo
xông, foo
xông, OO
xông, B
”, HồiBA
, MạnhBar
vàMạnhAR
xông.
kèo tỷ số bóng đá euro hôm nay chức năng được cung cấp bởiPG_TRGM
Mô -đun được hiển thị trongBảng F.25, toán tử trongBảng F.26.
Bảng F.25.PG_TRGM
Chức năng
xem xét ví dụ sau:
# Chọn Word_Similarity ('Word', 'Hai từ');
Trong chuỗi đầu tiên, bộ 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 kèo tỷ số bóng đá euro hôm nay 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ề kèo tỷ số bóng đá euro hôm nay 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_TRGM
toán tử
Nhà điều hành | return | Mô tả |
---|---|---|
Text % Text |
Boolean |
returnTRUE Nếu kèo tỷ số bóng đá euro hôm nay đố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 |
returnTRUE 17525_17726pg_trgm.word_similarity_threshold tham số. |
Text % Text |
Boolean |
<% Nhà điều hành. |
Text <- Text |
Real |
Trả vềHồiKhoảng cáchGiữa kèo tỷ số bóng đá euro hôm nay đối số, đó là một trừ điTương tự () Giá trị. |
Text <<- Text |
Real |
Trả vềKhoảng cáchGiữa kèo tỷ số bóng đá euro hôm nay đối số, đó là một trừ điword_similarity () Giá trị. |
Text <- Text |
Real |
<<- Nhà điều hành. |
ThePG_TRGM
Mô -đun cung cấp kèo tỷ số bóng đá euro hôm nay lớp toán tử chỉ mục GIST và GIN cho phép bạn tạo một chỉ mục trên một cột văn bản cho mục đích tìm kiếm tương tự rất nhanh. kèo tỷ số bóng đá euro hôm nay loại chỉ mục này hỗ trợ kèo tỷ số bóng đá euro hôm nay toán tử tương tự được mô tả ở trên và hỗ trợ thêm kèo tỷ số bóng đá euro hôm nay tìm kiếm chỉ mục dựa trên Trigram chonhư
, ilike
, ~
và~*
Truy vấn. .
Ví dụ:
Tạo bảng test_trgm (t văn bản);
hoặc
Tạo chỉ kèo tỷ số bóng đá euro hôm nay 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ó kèo tỷ số bóng đá euro hôm nay chỉ mục trênT
Cột mà bạn có thể sử dụng để tìm kiếm tương tự. kèo tỷ số bóng đá euro hôm nay 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ả kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay bộ dữ liệu rất lớn.
kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay chỉ mục GIST, nhưng không phải bởi kèo tỷ số bóng đá euro hôm nay 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ỏ kèo tỷ số bóng đá euro hôm nay trận đấu gần nhất được muốn.
Ngoài ra bạn có thể sử dụng kèo tỷ số bóng đá euro hôm nay chỉ mục trênT
Cộ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ả kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay bộ dữ liệu rất lớn.
kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay chỉ mục GIST, nhưng không phải bởi kèo tỷ số bóng đá euro hôm nay chỉ mục gin.
Bắt đầu trongPostgreSQL9.1, kèo tỷ số bóng đá euro hôm nay loại chỉ mục này cũng hỗ trợ tìm kiếm chỉ mục chonhư
vàilike
, ví dụ
Chọn * từ test_trgm trong đó t thích '%foo%bar';
Tìm kiếm chỉ kèo tỷ số bóng đá euro hôm nay 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ỉ kèo tỷ số bóng đá euro hôm nay. Càng nhiều trigram trong chuỗi tìm kiếm, tìm kiếm chỉ kèo tỷ số bóng đá euro hôm nay càng hiệu quả.
Bắt đầu trongPOSTGRESQL9.3, kèo tỷ số bóng đá euro hôm nay loại chỉ mục này cũng hỗ trợ tìm kiếm chỉ mục cho kèo tỷ số bóng đá euro hôm nay kết quả biểu hiện thông thường (~
và~*
Người vận hành), ví dụ
Chọn * từ test_trgm trong đó t ~ '(foo | bar)';
Tìm kiếm chỉ kèo tỷ số bóng đá euro hôm nay 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ỉ kèo tỷ số bóng đá euro hôm nay. 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ỉ kèo tỷ số bóng đá euro hôm nay càng hiệu quả.
cho cả hainhư
Và tìm kiếm biểu hiện thông thường, hãy nhớ rằng kèo tỷ số bóng đá euro hôm nay mẫu không có trigram có thể trích xuất sẽ thoái hóa thành quét toàn bộ chỉ số.
24519_24661
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 kèo tỷ số bóng đá euro hôm nay 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 một bảng phụ trợ chứa tất cả kèo tỷ số bóng đá euro hôm nay từ duy nhất trong tài liệu:
Tạo từ bảng như chọn từ từ
WHERETài liệu
là kèo tỷ số bóng đá euro hôm nay bảng có trường văn bảnBodyText
mà chúng tôi muốn tìm kiếm. Lý do sử dụngđơn giản
Cấu hình vớito_tsVector
Hà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 một danh sách kèo tỷ số bóng đá euro hôm nay từ gốc (unstemmed).
Tiếp theo, tạo chỉ kèo tỷ số bóng đá euro hôm nay Trigram trên cột từ:
25793_25857
Bây giờ, AChọn
Truy vấn tương tự như ví dụ trước có thể được sử dụng để đề xuất kèo tỷ số bóng đá euro hôm nay cách viết cho kèo tỷ số bóng đá euro hôm nay từ sai chính tả trong kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay từ đã chọn cũng có độ dài tương tự như từ sai chính tả.
kể từWords
Bảng đã được tạo thành kèo tỷ số bóng đá euro hôm nay 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 tài liệu. Giữ nó chính xác hiện tại thường không cần thiết.
Trang web phát triển chínhhttp: //www.sai.msu.su/~megera/postgres/gist/
Trang web phát triển Tsearch2http: //www.sai.msu.su/~megera/postgres/gist/tsearch/v2/
Oleg Bartunov<oleg@sai.msu.su
, Moscow, Đại học Moscow, Nga
Teodor Sigaev<teodor@sigaev.ru
, Moscow, Delta-Soft Ltd., Nga
Alexander Korotkov<a.korotkov@postgrespro.ru
, Moscow, Postgres Professional, Nga
Tài liệu: Christopher Kings-Lynne
Mô-đun này được tài trợ bởi Delta-Soft Ltd., Moscow, Nga.