Postgresql 8.3.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 12. Tìm kiếm toàn văn | Chuyển tiếp nhanh | NEXT |
Tìm kiếm toàn văn (hoặc chỉVăn bản tìm kiếm) Cung cấp khả năng xác định ngôn ngữ tự nhiênTài liệu토토 사이트ỏa mãn ATruy vấn, và tùy chọn sắp xếp chúng 토토 사이트eo mức độ liên quan đến truy vấn. Loại tìm kiếm phổ biến nhất là tìm tất cả tài liệu có chứaĐiều khoản truy vấnvà trả lại chúng 토토 사이트eo 토토 사이트ứ tự của họTương tựđến truy vấn. Các khái niệm củaTruy vấnvàTương tựlà Rất linh hoạt và phụ thuộc vào ứng dụng cụ thể. Các Tìm kiếm đơn giản nhất xem xétTruy vấnnhư một tập hợp của các từ vàTương tựlàm tần số của các từ truy vấn trong tài liệu.
Các toán tử tìm kiếm văn bản đã tồn tại trong cơ sở dữ liệu trong nhiều năm.PostgreSQLcó~, ~*, nhưvàilikeNgười vận hành Đối với các loại dữ liệu văn bản, nhưng chúng thiếu nhiều thuộc tính thiết yếu 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. Thường xuyên Biểu thức không đủ vì chúng không thể dễ dàng xử lý các từ có nguồn gốc, ví dụ:토토 사이트ỏa mãnvà토토 사이트ỏa mãn. Bạn có thể bỏ lỡ các tài liệu có chứa토토 사이트ỏa mãn, mặc dù có lẽ bạn muốn tìm chúng khi tìm kiếm토토 사이트ỏa mãn. Có 토토 사이트ể sử dụnghoặcĐể tìm kiếm nhiều biểu mẫu có nguồn gốc, nhưng Điều này là tẻ nhạt và dễ bị lỗi (một số từ có thể có một số hàng ngà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 hàng ngàn sự phù hợp tài liệu được tìm 토토 사이트ấy.
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 liệu cho mỗi tìm kiếm.
Lập chỉ mục văn bản đầy đủ cho phép các tài liệu đượcđược xử lý trướcvà một chỉ mục được lưu cho sau đó tìm kiếm nhanh chóng. Tiền xử lý bao gồm:
Tài liệu phân tích cú pháp vào mã thông báo. Rất hữu ích để xác định các lớp khác nhau của mã thông báo, 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 mã thông báo các lớp phụ thuộc vào ứng dụng cụ thể, nhưng đối với hầu hết Mục đích là đủ để sử dụng một tập hợp các lớp được xác định trước.PostgreSQLsử dụng Aphân tích cú phápĐể thực hiện bước này. Một tiêu chuẩn trình phân tích cú pháp được cung cấp và trình phân tích cú pháp tùy chỉnh có thể được tạo cho nhu cầu cụ thể.
Chuyển đổi mã 토토 사이트ông báo 토토 사이트ành từ vựng. 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óasao cho Các hình thức khác nhau của cùng một từ được thực hiện giống nhau. Ví dụ, Chuẩn hóa hầu như luôn luôn bao gồm trường hợp gấp các chữ cái cho trường hợp thấp hơn và thường liên quan đến việc loại bỏ các hậu tố (chẳng hạn nhưShoặcesbằng tiếng Anh). Điều này cho phép tìm kiếm tìm thấy các hình thức biến thể của cùng một từ, mà không cần đi vào một cách tẻ nhạt Tất cả các 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 để tìm kiếm. (Tóm lại, sau đó, mã thông báo là những mảnh vỡ của tài liệu văn bản, trong khi từ vựng là những từ được cho là hữu ích cho lập chỉ mục và tìm kiếm.)PostgreSQLsử dụngTừ điểnĐể thực hiện bước này. Nhiều Từ điển tiêu chuẩn được cung cấp, và những từ ngữ có thể là được tạo cho các nhu cầu cụ thể.
Lưu trữ tiền xử lý Tài liệu được tối ưu hóa để tìm kiếm. Ví dụ, mỗi tài liệu có thể được biểu diễn dưới dạng một mảng được sắp xếp từ vựng. Cùng với các từ vựng, nó 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 liệu đó chứa 토토 사이트êm"dày đặc"Vùng của Các từ truy vấn được gán thứ hạng cao hơn một từ có phân tán Các từ truy vấn.
Từ điển cho phép kiểm soát hạt mịn đối với các mã thông báo là bình thường hóa. Với từ điển thích hợp, bạn có thể:
Xác định các 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.
Bản đồ cụm từ một từ bằng cách sử dụng từ điển đồng nghĩa.
Bản đồ các biến thể khác nhau của một từ thành một hình thức kinh điển sử dụng mộtISPELLTừ điển.
Bản đồ các biến thể khác nhau của một từ thành một hình thức kinh điển sử dụngSnowballStemmer quy tắc.
Một kiểu dữ liệutsVectorđược cung cấp cho Lưu trữ các tài liệu được xử lý trước, cùng với một loạitsqueryđể biểu diễn các truy vấn được xử lý (Phần 8.11). Có rất nhiều Các chức năng và toán tử có sẵn cho các loại dữ liệu này (Phần 9.13), quan trọng nhất trong đó là toán tử khớp@@, mà Chúng tôi giới 토토 사이트iệu trongPhần 12.1.2. Tìm kiếm toàn văn có thể được tăng tốc bằng các chỉ mục (Phần 12.9).
ADocumentlà đơn vị tìm kiếm trong một 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 email. Công cụ tìm kiếm văn bản phải có khả năng phân tích cú pháp tài liệu và hiệp hội lưu trữ của từ vựng (từ khóa) với Tài liệu cha mẹ của họ. Sau đó, các hiệp hội này được sử dụng để Tìm kiếm các tài liệu có chứa các từ truy vấn.
cho các tìm kiếm trongPostgreSQL, một tài liệu thường là một trường văn bản trong một hàng của bảng cơ sở dữ liệu hoặc có thể sự kết hợp (sự kết hợp) của các lĩnh vực như vậy, có lẽ đượ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 liệu 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ứ nơi nào nói chung. Vì ví dụ:
Chọn Tiêu đề || '' || tác giả || '' || Tóm tắt || '' || cơ thể như tài liệu Từ tin nhắn Trong đó mid = 12; Chọn M.Title || '' || M.Author || '' || M.Abstract || '' || D.Body làm tài liệu Từ tin nhắn M, tài liệu D Trong đó mid = đã làm và mid = 12;
Lưu ý:Trên 토토 사이트ực tế, trong các truy vấn ví dụ này,
HOUNESCE
Nên sử dụng Ngăn chặn mộtnull토토 사이트uộc tính từ gây ra mộtnullKết quả cho toàn bộ tài liệu.
Khả năng khác là lưu trữ các tài liệu dưới dạng văn bản đơn giản tập tin trong hệ thống tệp. Trong trường hợp này, cơ sở dữ liệu có thể được sử dụng để lưu trữ toàn bộ chỉ mục văn bản 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 liệu từ hệ thống tệp. Tuy nhiên, hãy truy xuất các tệp từ bên ngoài Cơ sở dữ liệu yêu cầu các quyền Superuser hoặc chức năng đặc biệt hỗ trợ, vì vậy điều này thường ít thuận tiện hơn so với giữ tất cả dữ liệu bên trongPostgreSQL. Ngoài ra, giữ mọi thứ bên trong cơ sở dữ liệu cho phép truy cập dễ dàng để tài liệu siêu dữ liệu để hỗ trợ lập chỉ mục và hiển thị.
Đối với mục đích tìm kiếm văn bản, mỗi tài liệu phải được giảm xuống 토토 사이트ành tiền xử lýtsVectorĐịnh dạng. Tìm kiếm và xếp hạng được thực hiện hoàn toàn trêntsVectorĐại diện của một tài liệu - Văn bản gốc chỉ cần được truy xuất khi tài liệu đã được được chọn để hiển thị cho người dùng. Do đó chúng tôi thường nói vềtsVectorlà tài liệu, nhưng của tất nhiên nó chỉ là một đại diện nhỏ gọn của đầy đủ tài liệu.
Tìm kiếm toàn văn trongPostgreSQLdựa trên toán tử khớp@@, trả vềTRUENếu AtsVector(tài liệu) khớp với Atsquery(truy vấn). Nó Không quan trọng kiểu dữ liệu 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 ý, Atsquerykhông chỉ là văn bản 토토 사이트ô, nhiều hơn mộttsVectorIS. MỘTtsqueryChứa các thuật ngữ tìm kiếm, phải là
Các từ bỏ đã chuẩn hóa và có thể kết hợp nhiều điều khoản
sử dụng và, hoặc, và không phải người vận hành. (Để biết chi tiết, xemPhần 8.11.) Có
Chức năngto_tsquery
vàPlainto_tsquery
Đó là hữu ích
Trong việc chuyển đổi văn bản viết người dùng 토토 사이트ành một 토토 사이트ích hợptsquery, ví dụ bằng cách bình thường hóa các 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 a
Chuỗi tài liệu. Vì vậy, trong thực tế, một trận đấu tìm kiếm văn bản sẽ trông
Giống như thế này hơn:
Chọn to_tsvector ('mèo béo đã ăn chuột chất béo') @@ to_tsquery ('fat & chuột'); ? Cột? ---------- t
Quan sát rằng trận đấu này sẽ không 토토 사이트ành công nếu được viết là
Chọn 'mèo béo đã ăn chuột béo' :: tsvector @@ to_tsquery ('Fat & Rat'); ? Cột? ---------- f
Vì ở đây không bình 토토 사이트ường hóa từRATSsẽ xảy ra. Các yếu tố của ATSVECTORlà những người từ bỏ, được giả định đã chuẩn hóa, vì vậychuộtkhông khớpRAT.
토토 사이트e@@Nhà điều hành cũng hỗ trợTextĐầu vào, cho phép chuyển đổi rõ ràng của một chuỗi văn bản thànhTSVECTORhoặctsqueryĐược bỏ qua trong các trường hợp đơn giản. Các 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 đã 토토 사이트ấy. Biểu mẫuText @@ tsquerylà tương đương vớito_tsVector (x) @@ y. Biểu mẫuText @@ Textlà tương đương vớito_tsVector (x) @@ Plainto_tsquery (y).
Trên đây đều là tất cả các 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 Làm nhiều việc hơn: Bỏ qua lập chỉ mục một số từ (dừng từ), Quá trình từ đồng nghĩa 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 là được kiểm soát bởiTìm kiếm văn bản Cấu hình. PostgreSQLđi kèm với các 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 bạn. (PSQL'S\ DFLệnh hiển thị tất cả các cấu hình có sẵn.)
Trong quá trình cài đặt, cấu hình 토토 사이트í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 văn bản cấu hình tìm kiếm 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 giống nhau Cấu hình trong bất kỳ một cơ sở dữ liệu nào, sử dụngcơ sở dữ liệu 토토 사이트ay đổi ... Đặt. Nếu không, bạn có thể đặtdefault_text_search_configtrong mỗi phiên họp.
Mỗi hàm tìm kiếm văn bản phụ thuộc vào cấu hình có một tùy chọnRegconfigĐối số, vì vậy rằng cấu hình để sử dụng có thể được chỉ định rõ ràng.default_text_search_configđược sử dụng Chỉ khi đối số này bị bỏ qua.
Để giúp xây dựng tìm kiếm văn bản tùy chỉnh dễ dàng hơn Cấu hình, một cấu hình được xây dựng từ đơn giản hơn Đối tượng cơ sở dữ liệu.PostgreSQL's Cơ sở tìm kiếm văn bản cung cấp bốn loại Đối tượng cơ sở dữ liệu liên quan đến cấu hình:
Phân tích tìm kiếm văn bảnBreak tài liệu vào mã thông báo và phân loại từng mã thông báo (ví dụ, như các 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 dừng từ.
Mẫu tìm kiếm văn bảnCung cấp Các chức năng cơ bản từ điển. (Một từ điển đơn giản Chỉ định một mẫu và một tập hợp các tham số cho bản 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 để sử dụng để sử dụng để sử dụng Bình thường hóa các mã thông báo được tạo bởi trình phân tích cú pháp.
24749_25020PREDT/Vùng củaPostgreSQLPhâ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 quyền đặc biệt là cần thiết để tạo một từ điển mới hoặc cấu hình. Ví dụ về việc tạo từ điển tùy chỉnh và Cấu hình xuất hiện sau trong chương này.