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

F.21. 토토 사이트 추천

Mô -đun này thực hiện kiểu dữ liệu토토 사이트 추천để biểu diễn nhãn dữ liệu được lưu trữ trong cấu trúc giống như cây phân cấp. Các cơ sở rộng lớn để tìm kiếm qua các cây nhãn được cung cấp.

F.21.1. Định nghĩa

Anhãnlà một chuỗi các ký tự chữ và số (ví dụ: trong c locale các ký tựA-ZA-Z0-9_được cho phép). Nhãn phải dài dưới 256 ký tự.

ví dụ:42, cá nhân_service

Ađường dẫn nhãnlà một chuỗi không hoặc nhiều nhãn được phân tách bằng các dấu chấm, ví dụL1.L2.L3, đại diện cho một đường dẫn từ gốc của một cây phân cấp đến một nút cụ thể. Độ dài của đường dẫn nhãn không thể vượt quá 65535 nhãn.

Ví dụ:Top.Countries.Europe.Russia

The토토 사이트 추천Mô -đun cung cấp một số loại dữ liệu:

  • 토토 사이트 추천lưu trữ đường dẫn nhãn.

  • lqueryđại diện cho một mẫu giống như biểu hiện thông thường để kết hợp토토 사이트 추천Giá trị. Một từ đơn giản phù hợp với nhãn đó trong một đường dẫn. Một ký hiệu ngôi sao (*) khớp với các nhãn bằng không hoặc nhiều hơn. Ví dụ:

    fookhớp với đường dẫn nhãn chính xácfoo*.foo.*Phù hợp với bất kỳ đường dẫn nhãn nào chứa nhãnfoo*.fooPhù hợp với bất kỳ đường dẫn nhãn nào có nhãn cuối cùng làfoo

    Biểu tượng sao cũng có thể được định lượng để hạn chế số lượng chúng có thể khớp:

    *nkhớp chính xácnNhãn*n,Trận đấu ít nhấtnNhãn*n,Mít nhất lànnhưng không quáMNhãn*,MKết hợp nhiều nhấtMNhãn - giống như*0,M

    Có một số bộ sửa đổi có thể được đặt ở cuối nhãn không sao tronglqueryĐể làm cho nó khớp nhiều hơn là khớp chính xác:

    @Ví dụ, phù hợp với trường hợp không nhạy cảmA@MatchesA
    *           Phù hợp với bất kỳ nhãn nào với tiền tố này, ví dụfoo*MatchesFoobar%Kết hợp các từ được viết tắt ban đầu

    Hành vi của%hơi phức tạp. Nó cố gắng để phù hợp với các từ hơn là toàn bộ nhãn. Ví dụfoo_bar%Matchesfoo_bar_baznhưng khôngfoo_barbaz. Nếu kết hợp với*, Tiền tố phù hợp áp dụng riêng cho từng từ, ví dụfoo_bar%*khớpfoo1_bar2_baznhưng khôngFOO1_BR2_BAZ.

    Ngoài ra, bạn có thể viết một số nhãn có thể sửa đổi được phân tách bằng|(hoặc) để phù hợp với bất kỳ nhãn nào trong số đó và bạn có thể đặt!(không) khi bắt đầu khớp với bất kỳ nhãn nào không khớp với bất kỳ lựa chọn thay thế nào.

    Đây là một ví dụ được chú thích củalquery:

    Top.*0,2 .Sport*@.! Bóng đá | Tennis.russ*| Tây Ban Nha
    Một.  b.     c.      d.               e.

    Truy vấn này sẽ phù hợp với bất kỳ đường dẫn nhãn nào:

    1. Bắt đầu với nhãnTOP

    2. và Next có từ 0 đến hai nhãn trước

    3. Một nhãn bắt đầu với tiền tố không nhạy cảm với trường hợpSport

    4. Sau đó, một nhãn không khớpbóng đácũng khôngTennis

    5. Và sau đó kết thúc bằng một nhãn bắt đầu bằngRusshoặc khớp chính xácTây Ban Nha.

  • LtxtQueryđại diện cho một mẫu toàn văn-tìm kiếm đầy đủ để phù hợp토토 사이트 추천Giá trị. MỘTltxtqueryGiá trị chứa các từ, có thể với các sửa đổi@, *, %ở cuối; các bộ sửa đổi có ý nghĩa giống như tronglquery. Các từ có thể được kết hợp với&(và),|(hoặc),!(không) và dấu ngoặc đơn. Sự khác biệt chính từlqueryLtxtQueryphù hợp với các từ mà không liên quan đến vị trí của chúng trong đường dẫn nhãn.

    Đây là một ví dụLtxtQuery:

    Châu Âu & Nga*@ &! Giao thông vận tải

    Điều này sẽ khớp với các đường dẫn có chứa nhãnChâu Âuvà bất kỳ nhãn nào bắt đầu bằngNga(không phân biệt trường hợp), nhưng không phải đường dẫn chứa nhãnGiao thông vận tải. Vị trí của những từ này trong đường dẫn không quan trọng. Ngoài ra, khi%được sử dụng, từ này có thể được khớp với bất kỳ từ nào được phân tách trong một nhãn, bất kể vị trí.

Lưu ý:LtxtQueryCho phép khoảng trắng giữa các ký hiệu, nhưng토토 사이트 추천lqueryKhông.

F.21.2. Toán tử và chức năng

loại토토 사이트 추천Có toán tử so sánh thông thường=, <, <, , <=, =. So sánh sắp xếp theo thứ tự của một cây truyền tải, với những đứa trẻ của một nút được sắp xếp theo văn bản nhãn. Ngoài ra, các toán tử chuyên dụng được hiển thị trongBảng F-14có sẵn.

Bảng F-14.토토 사이트 추천Người vận hành

Nhà điều hành return Mô tả
토토 사이트 추천 @ 토토 사이트 추천 Boolean là đối số trái một tổ tiên bên phải (hoặc bằng)?
토토 사이트 추천 <@ 토토 사이트 추천 Boolean là đối số trái là hậu duệ của bên phải (hoặc bằng)?
토토 사이트 추천 ~ lquery Boolean không토토 사이트 추천khớplquery?
lquery ~ 토토 사이트 추천 Boolean không토토 사이트 추천khớplquery?
토토 사이트 추천 ? lquery [] Boolean không토토 사이트 추천khớp với bất kỳlqueryTrong mảng?
lquery [] ? 토토 사이트 추천 Boolean không토토 사이트 추천khớp với bất kỳlquerytrong mảng?
토토 사이트 추천 @ LtxtQuery Boolean không토토 사이트 추천khớpLtxtQuery?
LtxtQuery @ 토토 사이트 추천 Boolean không토토 사이트 추천khớpltxtquery?
토토 사이트 추천 || 토토 사이트 추천 토토 사이트 추천 Concatenate토토 사이트 추천đường dẫn
토토 사이트 추천 || Text 토토 사이트 추천 Chuyển đổi văn bản thành토토 사이트 추천và Concatenate
Text || 토토 사이트 추천 토토 사이트 추천 Chuyển đổi văn bản thành토토 사이트 추천và Concatenate
토토 사이트 추천 [] @ 토토 사이트 추천 Boolean Mảng có chứa tổ tiên của토토 사이트 추천?
토토 사이트 추천 <@ 토토 사이트 추천 [] Boolean Mảng có chứa tổ tiên của토토 사이트 추천?
토토 사이트 추천 [] <@ 토토 사이트 추천 Boolean Mảng có chứa hậu duệ của토토 사이트 추천?
토토 사이트 추천 @ 토토 사이트 추천 [] Boolean mảng có chứa hậu duệ của토토 사이트 추천?
토토 사이트 추천 [] ~ lquery Boolean Mảng có chứa bất kỳ đường dẫn nào khớplquery?
lquery ~ 토토 사이트 추천 [] Boolean mảng có chứa bất kỳ đường dẫn nào khớplquery?
토토 사이트 추천 [] ? lquery [] Boolean không토토 사이트 추천Mảng chứa bất kỳ đường dẫn nào phù hợp với bất kỳlquery?
lquery [] ? 토토 사이트 추천 [] Boolean không토토 사이트 추천Mảng chứa bất kỳ đường dẫn nào khớp với bất kỳlquery?
토토 사이트 추천 [] @ LtxtQuery Boolean mảng có chứa bất kỳ đường dẫn nào khớpLtxtQuery?
LtxtQuery @ 토토 사이트 추천 [] Boolean mảng có chứa bất kỳ đường dẫn nào khớpLtxtQuery?
토토 사이트 추천 [] ?@ 토토 사이트 추천 토토 사이트 추천 Mục nhập mảng đầu tiên là tổ tiên của토토 사이트 추천; Null nếu không
토토 사이트 추천 [] ? <@ 토토 사이트 추천 토토 사이트 추천 Mục nhập mảng đầu tiên là hậu duệ của토토 사이트 추천; Null nếu không
토토 사이트 추천 [] ? ~ lquery 토토 사이트 추천 Mục nhập mảng đầu tiên phù hợplquery; Null nếu không
토토 사이트 추천 [] ?@ LtxtQuery 토토 사이트 추천 Mục nhập mảng đầu tiên phù hợpLtxtQuery; Null nếu không

Người vận hành<@, @, @~Có các chất tương tự^<@, ^@, ^@, ^~, giống nhau ngoại trừ chúng không sử dụng các chỉ mục. Đây chỉ là hữu ích cho mục đích thử nghiệm.

Các chức năng có sẵn được hiển thị trongBảng F-15.

Bảng F-15.토토 사이트 추천chức năng

chức năng Loại trả lại Mô tả Ví dụ result
sub토토 사이트 추천 (토토 사이트 추천, int start, int end) 토토 사이트 추천 Subpath of토토 사이트 추천từ vị tríBắt đầuđến vị tríkết thúc-1 (đếm từ 0) Child1
Subpath (토토 사이트 추천, int offset, int len) 토토 사이트 추천 Subpath of토토 사이트 추천Bắt đầu tại vị tríOffset, lengthlen. Nếu nhưOffsetlà âm, đường dẫn bắt đầu xa so với cuối đường dẫn. Nếu nhưlenlà âm, để lại nhiều nhãn ra khỏi đầu đường dẫn. Subpath ('top.child1.child2', 0,2) top.child1
Subpath (토토 사이트 추천, int offset) 토토 사이트 추천 Subpath of토토 사이트 추천Bắt đầu tại vị tríOffset, mở rộng đến cuối đường dẫn. Nếu nhưOffsetlà tiêu cực, đường phụ bắt đầu từ cuối đường dẫn. Subpath ('top.child1.child2', 1) Child1.child2
nlevel (토토 사이트 추천) Số nguyên Số lượng nhãn trong đường dẫn nlevel ('top.child1.child2') 3
INDEX (토토 사이트 추천 A, 토토 사이트 추천 B) Số nguyên vị trí xuất hiện đầu tiên củaBinA; -1 nếu không tìm thấy INDEX ('0.1.2.3.5.5.5.6.8.5.6.8', '5.6') 6
INDEX (토토 사이트 추천 A, 토토 사이트 추천 B, INT OFFSET) Số nguyên vị trí xuất hiện đầu tiên củaBinA, Tìm kiếm bắt đầu tạiOffset; tiêu cựcOffsetcó nghĩa là bắt đầu-offsetNhãn từ cuối đường dẫn INDEX ('0.1.2.3.5.5.5.6.8.5.6.8', '5.6',-4) 9
Text2토토 사이트 추천 (văn bản) 토토 사이트 추천 CastTextđến토토 사이트 추천
토토 사이트 추천2TEXT (토토 사이트 추천) Text Cast토토 사이트 추천đếnText
LCA (토토 사이트 추천, 토토 사이트 추천, ...) 토토 사이트 추천 tổ tiên chung dài nhất của các đường dẫn (tối đa 8 đối số được hỗ trợ) LCA ('1.2.3', '1.2.3.4.5.6') 1.2
LCA (토토 사이트 추천 []) 토토 사이트 추천 Tổ tiên chung dài nhất của các đường dẫn trong mảng LCA (mảng ['1.2.3' :: 토토 사이트 추천, '1.2.3.4']) 1.2

F.21.3. Chỉ mục

토토 사이트 추천Hỗ trợ một số loại chỉ mục có thể tăng tốc các toán tử được chỉ định:

  • Chỉ mục B-Tree trên토토 사이트 추천: <, <=, =, =,

  • Chỉ mục Gist trên토토 사이트 추천: <, <=, =, =, , @, <@, @, ~, ?

    Ví dụ về việc tạo một chỉ mục như vậy:

    26677_26732
  • Chỉ mục Gist trên토토 사이트 추천 []: 토토 사이트 추천 [] <@ 토토 사이트 추천, 토토 사이트 추천 @ 토토 사이트 추천 [], @, ~, ?

    Ví dụ về việc tạo ra một chỉ mục như vậy:

    27046_27107

    Lưu ý: Loại chỉ mục này bị mất.

F.21.4. Ví dụ

Ví dụ này sử dụng dữ liệu sau (cũng có sẵn trong tệp27353_27382Trong phân phối nguồn):

Tạo thử nghiệm bảng (đường dẫn 토토 사이트 추천);
Chèn vào các giá trị kiểm tra ('trên cùng');
Chèn vào các giá trị kiểm tra ('top.science');
Chèn vào các giá trị kiểm tra ('top.science.astronomy');
Chèn vào các giá trị kiểm tra ('top.science.astronomy.astrophysics');
Chèn vào các giá trị kiểm tra ('top.science.astronomy.cosmology');
Chèn vào các giá trị kiểm tra ('top.hobbies');
Chèn vào các giá trị kiểm tra ('top.hobbies.amateurs_astronomy');
Chèn vào các giá trị kiểm tra ('top.collections');
Chèn vào các giá trị kiểm tra ('top.collections.pictures');
Chèn vào các giá trị kiểm tra ('top.collections.pictures.astronomy');
Chèn vào các giá trị kiểm tra ('top.collections.pictures.astronomy.stars');
Chèn vào các giá trị kiểm tra ('top.collections.pictures.astronomy.galaxies');
Chèn vào các giá trị kiểm tra ('top.collections.pictures.astronomy.astronauts');
Tạo chỉ mục path_gist_idx khi kiểm tra bằng gist (đường dẫn);
Tạo chỉ mục path_idx khi kiểm tra bằng btree (path);

Bây giờ, chúng ta có một bảngtestĐược điền với dữ liệu mô tả hệ thống phân cấp được hiển thị bên dưới:

Top
                     / |  \
             Bộ sưu tập sở thích khoa học
                 / |              \
        Thiên văn học nghiệp dư_astronomy hình ảnh
           / \ |
Vật lý thiên văn học thiên văn học
                                        / |    \
                                 Galaxies Stars Astronauts

Chúng ta có thể kế thừa:

lTreetest = Chọn đường dẫn từ thử nghiệm trong đó đường dẫn <@ 'top.science';
                con đường
----------------------------------------
 Top.Science
 Top.science.Astronomy
 Top.science.astronomy.astrophysics
 Top.science.Astronomy.Cosmology
(4 hàng)

Đây là một số ví dụ về đường dẫn khớp:

토토 사이트 추천test = Chọn đường dẫn từ bài kiểm tra trong đó đường dẫn ~ '*.Astronomy.*';
                     con đường
---------------------------------------------------
 Top.science.Astronomy
 Top.science.astronomy.astrophysics
 Top.science.Astronomy.Cosmology
 Top.collections.pictures.Astronomy
 Top.collections.pictures.astronomy.stars
 Top.collections.pictures.astronomy.galaxies
 Top.collections.pictures.astronomy.astronauts
(7 hàng)

토토 사이트 추천test = chọn đường dẫn từ thử nghiệm trong đó đường dẫn ~ '*.! hình ảnh@.*. Thiên văn học.*';
                con đường
----------------------------------------
 Top.science.Astronomy
 Top.science.astronomy.astrophysics
 Top.science.Astronomy.Cosmology
(3 hàng)

Đây là một số ví dụ về tìm kiếm văn bản đầy đủ:

토토 사이트 추천test = Chọn đường dẫn từ bài kiểm tra trong đó đường dẫn @ 'astro*% &! Hình ảnh @';
                con đường
----------------------------------------
 Top.science.Astronomy
 Top.science.astronomy.astrophysics
 Top.science.Astronomy.Cosmology
 Top.hobbies.amateurs_astronomy
(4 hàng)

토토 사이트 추천test = chọn đường dẫn từ thử nghiệm trong đó đường dẫn @ 'astro* &! hình ảnh @';
                con đường
----------------------------------------
 Top.science.Astronomy
 Top.science.astronomy.astrophysics
 Top.science.Astronomy.Cosmology
(3 hàng)

Xây dựng đường dẫn sử dụng các chức năng:

토토 사이트 추천test = Chọn Subpath (đường dẫn, 0,2) |
                 ? Cột?
--------------------------------------------------
 Top.science.space.astronomy
 Top.science.space.astronomy.astrophysics
 Top.science.space.astronomy.cosmology
(3 hàng)

Chúng tôi có thể đơn giản hóa điều này bằng cách tạo hàm SQL chèn nhãn tại một vị trí được chỉ định trong một đường dẫn:

Tạo chức năng INS_LABEL (LTREE, INT, TEXT) Trả về LTREE
    Như 'Chọn Subpath ($ 1,0, $ 2) || $ 3 || Subpath ($ 1, $ 2); '
    Ngôn ngữ SQL bất biến;

토토 사이트 추천test = chọn ins_label (đường dẫn, 2, 'không gian') từ thử nghiệm trong đó đường dẫn <@ 'top.science.astronomy';
                INS_Label
--------------------------------------------------
 Top.science.space.astronomy
 Top.science.space.astronomy.astrophysics
 Top.science.space.astronomy.cosmology
(3 hàng)

F.21.5. Biến đổi

tiện ích mở rộng bổ sung có sẵn để thực hiện các biến đổi cho토토 사이트 추천Loại cho PL/Python. Các tiện ích mở rộng được gọi là토토 사이트 추천_plpythonu, 토토 사이트 추천_PLPYTHON2U토토 사이트 추천_PLPYTHON3U(xemPostgreSQL : 문서 : 9.6 : 롤 토토 2 vs. 롤 토토 3Đối với quy ước đặt tên PL/Python). Nếu bạn cài đặt các biến đổi này và chỉ định chúng khi tạo hàm,토토 사이트 추천Giá trị được ánh xạ vào danh sách Python. (Tuy nhiên, điều ngược lại không được hỗ trợ.)

THẬN TRỌNG

Được khuyến nghị mạnh mẽ rằng các tiện ích mở rộng biến đổi được cài đặt trong cùng lược đồ với토토 사이트 추천. Nếu không

F.21.6. Tác giả

Tất cả công việc được thực hiện bởi Teodor Sigaev () và Oleg Bartunov (). Nhìn thấyhttp: //www.sai.msu.su/~megera/postgres/gist/Để biết thêm thông tin. Các tác giả xin cảm ơn Eugeny Rodichev vì các cuộc thảo luận hữu ích. Nhận xét và báo cáo lỗi được hoan nghênh.