PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để truy vấn SQL cho các từ có dấu câu trong Postgresql?

tsvector

Sử dụng tsvector loại, là một phần của tính năng tìm kiếm văn bản PostgreSQL.

postgres> select 'What are Q-type Operations?'::tsvector;
              tsvector               
-------------------------------------
 'Operations?' 'Q-type' 'What' 'are'
(1 row)

Bạn cũng có thể sử dụng các toán tử quen thuộc trên tsvectors:

postgres> select 'What are Q-type Operations?'::tsvector
postgres>        || 'A.B.C''s of Coding'::tsvector;
                           ?column?                           
--------------------------------------------------------------
 'A.B.C''s' 'Coding' 'Operations?' 'Q-type' 'What' 'are' 'of'

Từ tài liệu tsvector:

Nếu bạn cũng muốn thực hiện chuẩn hóa theo ngôn ngữ cụ thể, chẳng hạn như xóa các từ phổ biến ('the', 'a', v.v.) và các phép nhân, hãy sử dụng to_tsvector hàm số. Nó cũng gán trọng số cho các từ khác nhau để tìm kiếm văn bản:

postgres> select to_tsvector('english',
postgres> 'What are Q-type Operations? A.B.C''s of Coding');
                      to_tsvector                       
--------------------------------------------------------
 'a.b.c':7 'code':10 'oper':6 'q':4 'q-type':3 'type':5
(1 row)

Tìm kiếm toàn văn

Rõ ràng làm điều này cho mọi hàng trong một truy vấn sẽ rất tốn kém - vì vậy bạn nên lưu trữ tsvector trong một cột riêng biệt và sử dụng ts_query () để tìm kiếm nó. Điều này cũng cho phép bạn tạo chỉ mục GiST trên tsvector.

postgres> insert into text (phrase, tsvec)
postgres>   values('What are Q-type Operations?',
postgres>   to_tsvector('english', 'What are Q-type Operations?'));
INSERT 0 1

Tìm kiếm được thực hiện bằng tsquery và toán tử @@:

postgres> select phrase from text where tsvec @@ to_tsquery('q-type');
           phrase            
-----------------------------
 What are Q-type Operations?
(1 row)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đổi tên bảng một cách an toàn bằng cách sử dụng các cột khóa chính nối tiếp

  2. Kiểm tra nhanh nhất nếu hàng tồn tại trong PostgreSQL

  3. Tổng quan về các công cụ sơ đồ cơ sở dữ liệu có sẵn cho PostgreSQL

  4. Giá trị NULL cho cột tham chiếu_constraints.unique_constraint_ * trong lược đồ thông tin

  5. Cách đặt lại trình tự cho ID trên bảng PostgreSQL