Tìm kiếm toàn văn (hoặc chỉTìm kiếm văn bản) Cung cấp khả năng xác định ngôn ngữ tự nhiênTài kèo chấp bóng đá hôm naythỏa mãn ATruy vấn, và tùy chọn để sắp xếp chúng theo sự liên quan đến truy vấn. Loại tìm kiếm phổ biến nhất là tìm tất cả các tài kèo chấp bóng đá hôm nay có chứaĐiều khoản truy vấnvà trả lại chúng theo thứ tự của họTương tựđến truy vấn. kèo chấp bóng đá hôm nay khái niệm củaTruy vấn
vàTương tự
rất linh hoạt và phụ thuộc vào ứng dụng cụ thể. Tìm kiếm đơn giản nhất xem xétTruy vấn
như một tập hợp kèo chấp bóng đá hôm nay từ vàTương tự
Là tần số của các từ truy vấn trong tài kèo chấp bóng đá hôm nay.
Các toán tử tìm kiếm văn bản đã tồn tại trong cơ sở dữ kèo chấp bóng đá hôm nay trong nhiều năm.PostgreSQLcó~
, ~*
, như
vàilike
Nhà khai thác cho các loại dữ kèo chấp bóng đá hôm nay văn bản, nhưng chúng thiếu nhiều thuộc tính thiết yếu được yêu cầu bởi các hệ thống thông tin hiện đại:
Không có hỗ trợ ngôn ngữ, ngay cả đối với tiếng Anh. Biểu thức thông thường không đủ vì chúng không thể dễ dàng xử lý kèo chấp bóng đá hôm nay từ có nguồn gốc, ví dụ:thỏa mãn
vàthỏa mãn
. Bạn có thể bỏ lỡ các tài kèo chấp bóng đá hôm nay có chứathỏa mãn
, mặc dù bạn có thể muốn tìm thấy chúng khi tìm kiếmthỏa mãn
. Có thể sử dụnghoặc
Để tìm kiếm nhiều hình thức dẫn xuất, nhưng điều này là tẻ nhạt và dễ bị lỗi (một số từ có thể có vài nghìn dẫn xuất).
Họ không cung cấp đặt hàng (xếp hạng) kết quả tìm kiếm, điều này làm cho chúng không hiệu quả khi tìm thấy hàng ngàn tài kèo chấp bóng đá hôm nay phù hợp.
Chúng có xu hướng chậm vì không có hỗ trợ chỉ mục, vì vậy họ phải xử lý tất cả các tài kèo chấp bóng đá hôm nay cho mỗi tìm kiếm.
Lập chỉ mục văn bản đầy đủ cho phép các tài kèo chấp bóng đá hôm nay đượctiền xử lývà một chỉ mục được lưu để tìm kiếm nhanh sau. Tiền xử lý bao gồm:
Phân tích tài kèo chấp bóng đá hôm nay phân tích thànhmã thông báo. Rất hữu ích để xác định kèo chấp bóng đá hôm nay lớp mã thông báo khác nhau, ví dụ: số, từ, từ phức tạp, địa chỉ email, để chúng có thể được xử lý khác nhau. Về nguyên tắc, kèo chấp bóng đá hôm nay lớp mã thông báo phụ thuộc vào ứng dụng cụ thể, nhưng đối với hầu hết kèo chấp bóng đá hôm nay mục đích, việc sử dụng một tập hợp kèo chấp bóng đá hôm nay lớp được xác định trước là đủ.PostgreSQLsử dụng Aphân tích cú phápĐể thực hiện bước này. Một trình phân tích cú pháp tiêu chuẩn được cung cấp và trình phân tích cú pháp tùy chỉnh có thể được tạo cho kèo chấp bóng đá hôm nay nhu cầu cụ thể.
Chuyển đổi mã thông báo thànhLexeme. Một từ vựng là một chuỗi, giống như một mã thông báo, nhưng nó đã đượcchuẩn hóa13307_13507S
hoặces
bằng tiếng Anh). Điều này cho phép kèo chấp bóng đá hôm nay tìm kiếm tìm thấy kèo chấp bóng đá hôm nay dạng biến thể của cùng một từ, mà không cần nhập một cách tẻ nhạt tất cả kèo chấp bóng đá hôm nay biến thể có thể. Ngoài ra, bước này thường loại bỏDừng từ, đó là những từ phổ biến đến mức chúng vô dụng khi tìm kiếm. .PostgreSQLsử dụngTừ điểnĐể thực hiện bước này. kèo chấp bóng đá hôm nay từ điển tiêu chuẩn khác nhau được cung cấp và kèo chấp bóng đá hôm nay từ tùy chỉnh có thể được tạo cho kèo chấp bóng đá hôm nay nhu cầu cụ thể.
Lưu trữ các tài kèo chấp bóng đá hôm nay được xử lý trước được tối ưu hóa để tìm kiếm. Ví dụ, mỗi tài kèo chấp bóng đá hôm nay có thể được biểu diễn dưới dạng một mảng được sắp xếp của các từ vựng được chuẩn hóa. Cùng với các từ vựng, người ta thường mong muốn lưu trữ thông tin vị trí để sử dụng choXếp hạng gần, để một tài kèo chấp bóng đá hôm nay chứa nhiều hơndày đặcKhănVùng của kèo chấp bóng đá hôm nay từ truy vấn được gán thứ hạng cao hơn một từ có từ truy vấn phân tán.
Từ điển cho phép kiểm soát hạt mịn đối với kèo chấp bóng đá hôm nay mã thông báo được chuẩn hóa. Với từ điển thích hợp, bạn có thể:
Xác định kèo chấp bóng đá hôm nay từ dừng không nên được lập chỉ mục.
Bản đồ đồng nghĩa với một từ sử dụngISPELL.
kèo chấp bóng đá hôm nay cụm từ bản đồ đến một từ duy nhất bằng cách sử dụng từ điển đồng nghĩa.
Bản đồ kèo chấp bóng đá hôm nay biến thể khác nhau của một từ thành một hình thức kinh điển bằng cách sử dụngISPELLTừ điển.
Bản đồ kèo chấp bóng đá hôm nay biến thể khác nhau của một từ thành hình thức kinh điển bằng cách sử dụngSnowballQuy tắc Stemmer.
Một kiểu dữ kèo chấp bóng đá hôm nay15924_15934
được cung cấp để lưu trữ các tài kèo chấp bóng đá hôm nay được xử lý trước, cùng với một loạitsquery
để biểu diễn kèo chấp bóng đá hôm nay truy vấn đã xử lý (Phần 8.11). Có nhiều chức năng và toán tử có sẵn cho các loại dữ kèo chấp bóng đá hôm nay này (Phần 9.13), Điều quan trọng nhất là toán tử khớp@@
, mà chúng tôi giới thiệu trongPhần 12.1.2. Tìm kiếm toàn văn có thể được tăng tốc bằng kèo chấp bóng đá hôm nay chỉ mục (Phần 12.9).
ADocumentlà đơn vị tìm kiếm trong hệ thống tìm kiếm văn bản đầy đủ; Ví dụ, một bài báo tạp chí hoặc tin nhắn email. Công cụ tìm kiếm văn bản phải có khả năng phân tích các tài kèo chấp bóng đá hôm nay và lưu trữ các hiệp hội của từ vựng (từ khóa) với tài kèo chấp bóng đá hôm nay chính của họ. Sau đó, các hiệp hội này được sử dụng để tìm kiếm các tài kèo chấp bóng đá hôm nay có chứa các từ truy vấn.
cho kèo chấp bóng đá hôm nay tìm kiếm trongPostgreSQL, một tài kèo chấp bóng đá hôm nay thường là một trường văn bản trong một hàng của bảng cơ sở dữ kèo chấp bóng đá hôm nay hoặc có thể là sự kết hợp (nối) của các trường đó, có thể được lưu trữ trong một số bảng hoặc thu được động. Nói cách khác, một tài kèo chấp bóng đá hôm nay có thể được xây dựng từ các phần khác nhau để lập chỉ mục và nó có thể không được lưu trữ ở bất cứ đâu nói chung. Ví dụ:
17888_18144
Trên thực tế, trong kèo chấp bóng đá hôm nay truy vấn ví dụ này,HOUNESCE
nên được sử dụng để ngăn chặn mộtnull
thuộc tính từ việc gây ranull
Kết quả cho toàn bộ tài kèo chấp bóng đá hôm nay.
Một khả năng khác là lưu trữ các tài kèo chấp bóng đá hôm nay dưới dạng các tệp văn bản đơn giản trong hệ thống tệp. Trong trường hợp này, cơ sở dữ kèo chấp bóng đá hôm nay có thể được sử dụng để lưu trữ chỉ mục văn bản đầy đủ và để thực hiện các tìm kiếm và một số định danh duy nhất có thể được sử dụng để truy xuất tài kèo chấp bóng đá hôm nay từ hệ thống tệp. Tuy nhiên, việc truy xuất các tệp từ bên ngoài cơ sở dữ kèo chấp bóng đá hôm nay yêu cầu các quyền của Superuser hoặc hỗ trợ chức năng đặc biệt, vì vậy điều này thường ít thuận tiện hơn so với việc giữ tất cả dữ kèo chấp bóng đá hôm nay bên trongPostgreSQL. Ngoài ra, giữ mọi thứ bên trong cơ sở dữ kèo chấp bóng đá hôm nay cho phép dễ dàng truy cập vào siêu dữ kèo chấp bóng đá hôm nay tài kèo chấp bóng đá hôm nay để hỗ trợ lập chỉ mục và hiển thị.
19093_19171tsVector
Định dạng. Tìm kiếm và xếp hạng được thực hiện hoàn toàn trêntsVector
Biểu diễn của tài kèo chấp bóng đá hôm nay - Văn bản gốc chỉ cần được truy xuất khi tài kèo chấp bóng đá hôm nay đã được chọn để hiển thị cho người dùng. Do đó chúng tôi thường nói vềtsVector
Là tài kèo chấp bóng đá hôm nay, nhưng tất nhiên nó chỉ là một đại diện nhỏ gọn của tài kèo chấp bóng đá hôm nay đầy đủ.
19818_19843PostgreSQLdựa trên toán tử kết hợp@@
, trả vềĐúng
Nếu AtsVector
(tài kèo chấp bóng đá hôm nay) khớp với Atsquery
(truy vấn). Không quan trọng kiểu dữ kèo chấp bóng đá hôm nay nào được viết đầu tiên:
Chọn 'Một con mèo béo ngồi trên thảm và ăn một con chuột béo' :: tsvector @@ 'Cat & Rat' :: Tsquery; ? Cột? ---------- t Chọn 'Chất béo & Bò' :: Tsquery @@ 'Một con mèo béo ngồi trên thảm và ăn một con chuột béo' :: tsvector; ? Cột? ---------- f
Như ví dụ trên gợi ý, Atsquery
không chỉ là văn bản thô, nhiều hơn mộtTSVECTOR
IS. MỘTtsquery
Chứa kèo chấp bóng đá hôm nay thuật ngữ tìm kiếm, phải được điều chế hóa và có thể kết hợp nhiều thuật ngữ bằng cách sử dụng và, hoặc không, và theo sau là kèo chấp bóng đá hôm nay toán tử. (Để biết chi tiết cú pháp, xem20872_20893.) Có kèo chấp bóng đá hôm nay chức năngto_tsquery
, Plainto_tsquery
vàPHRASETO_TSQUERY
hữu ích trong việc chuyển đổi văn bản viết người dùng thành một cách thích hợptsquery
, chủ yếu bằng cách bình thường hóa kèo chấp bóng đá hôm nay từ xuất hiện trong văn bản. Tương tự,to_tsVector
được sử dụng để phân tích và bình thường hóa chuỗi tài kèo chấp bóng đá hôm nay. Vì vậy, trong thực tế, một kết quả tìm kiếm văn bản sẽ trông giống như thế này:
21411_21514
Quan sát rằng trận đấu này sẽ không thành công nếu được viết là
Chọn 'mèo béo đã ăn chuột béo' :: tsvector @@ to_tsquery ('fat & chuột'); ? Cột? ---------- f
Vì ở đây không bình thường hóa từRATS
sẽ xảy ra. kèo chấp bóng đá hôm nay yếu tố của ATSVECTOR
là những người từ bỏ, được giả định đã được chuẩn hóa, vì vậyRATS
không khớpRAT
.
The@@
Nhà điều hành cũng hỗ trợText
Đầu vào, cho phép chuyển đổi rõ ràng chuỗi văn bản thànhtsVector
hoặctsquery
Được bỏ qua trong kèo chấp bóng đá hôm nay trường hợp đơn giản. kèo chấp bóng đá hôm nay biến thể có sẵn là:
tsvector @@ tsquery tsquery @@ tsVector Văn bản @@ tsquery Text @@ Text
Hai cái đầu tiên chúng ta đã thấy. Biểu mẫuText
@@
tsquery
là tương đương vớito_tsVector (x) @@ y
. Biểu mẫuText
@@
Text
là tương đương vớito_tsVector (x) @@ Plainto_tsquery (y)
.
trong Atsquery
, The&
(và) Người vận hành chỉ định rằng cả hai đối số của nó phải xuất hiện trong tài kèo chấp bóng đá hôm nay để có một trận đấu. Tương tự,|
23047_23132!
(không) toán tử chỉ định rằng đối số của nó phảikhôngxuất hiện để có một trận đấu. Ví dụ: truy vấnFat &! con chuột
khớp với các tài kèo chấp bóng đá hôm nay có chứaFAT
nhưng khôngRAT
.
Tìm kiếm cụm từ có thể với sự trợ giúp của<-
(tiếp theo là)tsquery
Toán tử, chỉ phù hợp nếu kèo chấp bóng đá hôm nay đối số của nó có kèo chấp bóng đá hôm nay khớp nối liền kề và theo thứ tự đã cho. Ví dụ:
23762_23969
Có một phiên bản chung hơn sau đó là toán tử có biểu mẫu<
, trong đón
n
là một số nguyên đại diện cho sự khác biệt giữa kèo chấp bóng đá hôm nay vị trí của kèo chấp bóng đá hôm nay từ vựng phù hợp.<1
giống như<-
, trong khi<2
Cho phép chính xác một từ vựng khác xuất hiện giữa kèo chấp bóng đá hôm nay trận đấu, v.v. ThePHRASETO_TSQUERY
Hàm sử dụng toán tử này để xây dựng mộttsquery
24628_24717
chọn Phraseto_tsquery ('mèo ATS RATS'); Phraseto_tsquery ----------------------------------- 'Cat' <- 'ATE' <- 'RAT' Chọn Phraseto_tsquery ('những con mèo ăn chuột'); Phraseto_tsquery ----------------------------------- 'Cat' <- 'ATE' <2 'RAT'
Một trường hợp đặc biệt đôi khi hữu ích là<0
có thể được sử dụng để yêu cầu hai mẫu phù hợp với cùng một từ.
dấu ngoặc đơn có thể được sử dụng để kiểm soát việc làm tổ củatsquery
Người vận hành. Không có dấu ngoặc đơn,|
Liên kết ít nhất, sau đó&
, sau đó<-
và!
chặt chẽ nhất.
25523_25789! X
Chỉ phù hợp với các tài kèo chấp bóng đá hôm nay không chứax
Bất cứ nơi nào. Nhưng! X <- y
Matchesy
Nếu nó không ngay lập tức sau mộtx
; sự xuất hiện củax
Ở nơi khác trong tài kèo chấp bóng đá hôm nay không ngăn được một trận đấu. Một ví dụ khác làX & Y
Thông thường chỉ yêu cầu điều đóx
vàY
Cả hai xuất hiện ở đâu đó trong tài kèo chấp bóng đá hôm nay, nhưng(x & y) <- z
Yêu cầux
vày
Để phù hợp tại cùng một nơi, ngay trước Az
. Do đó, truy vấn này hoạt động khác vớix <- z & y <- z
, sẽ khớp với một tài kèo chấp bóng đá hôm nay chứa hai chuỗi riêng biệtX Z
vàY Z
. (Truy vấn cụ thể này là vô dụng như được viết, vìX
vàY
Không thể khớp tại cùng một nơi; Nhưng với kèo chấp bóng đá hôm nay tình huống phức tạp hơn như kèo chấp bóng đá hôm nay mẫu khớp tiền tố, một truy vấn của biểu mẫu này có thể hữu ích.)
Trên đây đều là tất cả kèo chấp bóng đá hôm nay ví dụ tìm kiếm văn bản đơn giản. Như đã đề cập trước đây, chức năng tìm kiếm văn bản đầy đủ bao gồm khả năng thực hiện nhiều việc hơn: Bỏ qua lập chỉ mục kèo chấp bóng đá hôm nay từ (từ dừng), từ đồng nghĩa quy trình và sử dụng phân tích cú pháp tinh vi, ví dụ, phân tích cú pháp dựa trên không chỉ là không gian trắng. Chức năng này được kiểm soát bởiCấu hình tìm kiếm văn bản. PostgreSQLđi kèm với kèo chấp bóng đá hôm nay cấu hình được xác định trước cho nhiều ngôn ngữ và bạn có thể dễ dàng tạo cấu hình của riêng mình. (PSQL's\ DF
Lệnh hiển thị tất cả kèo chấp bóng đá hôm nay cấu hình có sẵn.)
Trong quá trình cài đặt, cấu hình thích hợp được chọn vàdefault_text_search_configđược đặt tương ứng trongPostgreSql.conf
. Nếu bạn đang sử dụng cùng một cấu hình tìm kiếm văn bản cho toàn bộ cụm, bạn có thể sử dụng giá trị trongPostgreSql.conf
. Để sử dụng các cấu hình khác nhau trong toàn bộ cụm nhưng cùng một cấu hình trong bất kỳ một cơ sở dữ kèo chấp bóng đá hôm nay nào, hãy sử dụngCơ sở dữ kèo chấp bóng đá hôm nay thay đổi ... Đặt
. Nếu không, bạn có thể đặtdefault_text_search_config
Trong mỗi phiên.
Mỗi chức năng tìm kiếm văn bản phụ thuộc vào cấu hình có tùy chọnRegconfig
Đối số, để cấu hình để sử dụng có thể được chỉ định rõ ràng.default_text_search_config
chỉ được sử dụng khi đối số này bị bỏ qua.
28904_29027PostgreSQLCơ sở tìm kiếm văn bản cung cấp bốn loại đối tượng cơ sở dữ kèo chấp bóng đá hôm nay liên quan đến cấu hình:
trình phân tích cú pháp tìm kiếm văn bảnChia tài kèo chấp bóng đá hôm nay thành mã thông báo và phân loại từng mã thông báo (ví dụ: dưới dạng từ hoặc số).
Từ điển tìm kiếm văn bảnChuyển đổi mã thông báo sang dạng chuẩn hóa và từ chối kèo chấp bóng đá hôm nay từ dừng.
Mẫu tìm kiếm văn bảnCung cấp kèo chấp bóng đá hôm nay chức năng từ điển cơ bản. (Một từ điển chỉ cần chỉ định một mẫu và một tập hợp kèo chấp bóng đá hôm nay tham số cho mẫu.)
Cấu hình tìm kiếm văn bảnChọn trình phân tích cú pháp và một bộ từ điển để sử dụng để bình thường hóa kèo chấp bóng đá hôm nay mã thông báo được tạo bởi trình phân tích cú pháp.
Trình phân tích và mẫu tìm kiếm văn bản được xây dựng từ các hàm C cấp thấp; Do đó, nó yêu cầu khả năng lập trình C để phát triển những đặc quyền mới và các đặc quyền của siêu người dùng để cài đặt một vào cơ sở dữ kèo chấp bóng đá hôm nay. (Có các ví dụ về trình phân tích cú pháp và mẫu bổ sung trongPREDT/
30524_30539PostgreSQLPhân phối.) Vì từ điển và cấu hình chỉ tham số hóa và kết nối với nhau một số trình phân tích cú pháp và mẫu cơ bản, không cần đặc quyền đặc biệt để tạo từ điển hoặc cấu hình mới. Ví dụ về việc tạo từ điển và cấu hình tùy chỉnh xuất hiện sau trong chương này.
Nếu bạn thấy bất cứ điều gì trong tài kèo chấp bóng đá hôm nay không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài kèo chấp bóng đá hôm nay.