ThePG_TRGM
Mô -đun cung cấp các 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ác lớp toán tử chỉ mục hỗ trợ tìm kiếm nhanh các chuỗi kèo bóng đá việt nam tự.
Mô -đun này được coi làHồiđáng tin cậy”, nghĩa là, nó có thể được cài đặt bởi những người không phải là người siêu giám sát cóTạo
Đặc quyền trên cơ sở dữ liệu hiện tại.
kèo bóng đá việt nam 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 kèo bóng đá việt nam mà họ chia sẻ.
PG_TRGM
Bỏ qua các 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ác kèo bóng đá việt nam có trong chuỗi.CAT
HồilàC
Hồi, CA
Hồi, CAT
Hồivàat
Hồi. Tập hợp các kèo bóng đá việt nam trong chuỗifoo | Bar
làHồif
Hàng, fo
xông, foo
Khăn, OO
Khăn, B
, MạnhBA
, Bar
xôngvàMạnhAR
.
kèo bóng đá việt nam chức năng được cung cấp bởiPG_TRGM
Mô -đun được hiển thị trongBảng F.26, toán tử trongBảng F.27.
Bảng F.26.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ộ kèo bóng đá việt nam là"W", "wo", "wor", "ord", "rd"
. Trong chuỗi thứ hai, bộ kèo bóng đá việt nam được đặt hàng là"t", "tw", "hai", "wo", "w", "wo", "wor", "ord", "rds", "ds"
. Mức độ kèo bóng đá việt nam 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ự kèo bóng đá việt nam tự là0.8
.
Hàm này trả về một giá trị có thể được hiểu xấp xỉ là điểm kèo bóng đá việt nam đồ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.
Đồng thời,strict_word_similarity
Chọn một mức độ kèo bóng đá việt nam các từ trong chuỗi thứ hai. Trong ví dụ trên,strict_word_similarity
Sẽ chọn phạm vi kèo bóng đá việt nam một từ duy nhất'Words'
, có bộ kèo bóng đá việt nam là"W", "wo", "wor", "ord", "rds", "ds"
.
21037_21243
Do đó,strict_word_similarity
Hàm rất hữu ích để tìm sự kèo bóng đá việt nam đồng với toàn bộ từ, trong khiword_similarity
phù hợp hơn để tìm sự kèo bóng đá việt nam đồng cho các phần của từ.
Bảng F.27.PG_TRGM
Người vận hành
Nhà điều hành Mô tả |
---|
return |
return |
|
return |
Cổ lưu kèo bóng đá việt nam |
Trả vềKhoảng cáchGiữa kèo bóng đá việt nam đối số, đó là một trừ |
Trả vềHồiKhoảng cáchHồiGiữa kèo bóng đá việt nam đối số, đó là một trừ đi |
|
Trả vềKhoảng cáchxôngGiữa kèo bóng đá việt nam đối số, đó là một trừ đi |
Trình làm lại |
(Real
) #Đặt ngưỡng kèo bóng đá việt nam 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 kèo bóng đá việt nam tự từ hiện tại được sử dụng bởi<%
và%
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).
pg_trgm.strict_word_similarity_threshold
(Real
) #Đặt ngưỡng kèo bóng đá việt nam tự từ nghiêm ngặt hiện tại được sử dụng bởi<<%
và%
Người vận hành. Ngưỡng phải nằm trong khoảng từ 0 đến 1 (mặc định là 0,5).
ThePG_TRGM
Mô -đun cung cấp các 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 kèo bóng đá việt nam tự rất nhanh. Các loại chỉ mục này hỗ trợ các toán tử kèo bóng đá việt nam tự được mô tả ở trên và hỗ trợ thêm các tìm kiếm chỉ mục dựa trên Trigram chonhư
, ilike
, ~
, ~*
và=
Truy vấn. Các so sánh kèo bóng đá việt nam tự là không nhạy cảm trường hợp trong bản dựng mặc định làPG_TRGM
. kèo bóng đá việt nam nhà khai thác bất bình đẳng không được hỗ trợ.
Ví dụ:
Tạo bảng test_trgm (t văn bản);
hoặc
Tạo chỉ mục TRGM_IDX trên test_trgm bằng Gin (T Gin_TRGM_OPS);
GIST_TRGM_OPS
GIST OPCLASS xấp xỉ một bộ kèo bóng đá việt nam dưới dạng chữ ký bitmap. Tham số số nguyên tùy chọn của nóSiglen
Xác định độ dài chữ ký trong byte. Độ dài mặc định là 12 byte.
Ví dụ về việc tạo một chỉ mục như vậy với độ dài chữ ký là 32 byte:
30864_30943
Tại thời điểm này, bạn sẽ có một chỉ mục trênT
Cột mà bạn có thể sử dụng để tìm kiếm kèo bóng đá việt nam tự. Một truy vấn điển hình là
Chọn t, độ kèo bóng đá việt nam tự (t, 'Word
') như smlWord
'
Điều này sẽ trả về tất cả kèo bóng đá việt nam 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 bóng đá việt nam bộ dữ liệu rất lớn.
Một biến thể kèo bóng đá việt nam 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 bóng đá việt nam chỉ mục GIST, nhưng không phải bởi kèo bóng đá việt nam 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 bóng đá việt nam trận đấu gần nhất được muốn.
Ngoài ra bạn có thể sử dụng một chỉ mục trênT
Cột cho độ kèo bóng đá việt nam tự từ hoặc độ kèo bóng đá việt nam tự từ nghiêm ngặt. Truy vấn điển hình là:
Chọn t, word_similarity ('Word
', t) như SMLWord
' <% t
và
Chọn T, Strict_word_Similarity ('Word
', t) như SMLWord
' <<% t
Điều này sẽ trả về tất cả các giá trị trong cột văn bản có phạm vi liên tục trong bộ Trigram được đặt hàng kèo bóng đá việt nam ứ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 bóng đá việt nam bộ dữ liệu rất lớn.
Các biến thể có thể kèo bóng đá việt nam các truy vấn trên là:
Chọn T, 'Word
' <<- T như Dist
và
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 bóng đá việt nam chỉ mục GIST, nhưng không phải bởi kèo bóng đá việt nam chỉ mục gin.
Bắt đầu trongPOSTGRESQL9.1, kèo bóng đá việt nam 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 như '%foo%bar';
Tìm kiếm chỉ mục hoạt động bằng cách trích xuất kèo bóng đá việt nam từ chuỗi tìm kiếm và sau đó tìm kiếm chúng trong chỉ mục. Càng nhiều kèo bóng đá việt nam trong chuỗi tìm kiếm, tìm kiếm chỉ mục càng hiệu quả.
Bắt đầu trongPostgreSQL9.3, kèo bóng đá việt nam loại chỉ mục này cũng hỗ trợ tìm kiếm chỉ mục cho kèo bóng đá việt nam 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ỉ mục hoạt động bằng cách trích xuất kèo bóng đá việt nam từ biểu thức chính quy và sau đó tìm kiếm chúng trong chỉ mục. Càng nhiều kèo bóng đá việt nam có thể được trích xuất từ biểu thức chính quy, tìm kiếm chỉ mục 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 một mẫu không có kèo bóng đá việt nam có thể trích xuất sẽ thoái hóa thành quét toàn bộ chỉ số.
34888_35030
Kết hợp kèo bóng đá việt nam 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ác 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 bóng đá việt nam từ duy nhất trong tài liệu:
Tạo kèo bóng đá việt nam từ bảng như chọn từ từ
WHERETài liệu
là một 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 cụ thể ngôn ngữ, là chúng tôi muốn có một danh sách kèo bóng đá việt nam từ gốc (unstemmed).
Tiếp theo, tạo chỉ mục kèo bóng đá việt nam trên cột từ:
36294_36360
Bây giờ, AChọn
Truy vấn kèo bóng đá việt nam tự như ví dụ trước có thể được sử dụng để đề xuất các cách viết cho các từ sai chính tả trong các 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ác từ đã chọn cũng có độ dài kèo bóng đá việt nam tự như từ sai chính tả.
kể từWords
Bả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 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<leg@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.