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

Truy vấn FULLTEXT với điểm / xếp hạng trong Postgresql

Tìm kiếm toàn văn bản Postgres hơi khác một chút so với tìm kiếm toàn văn bản MySQL. Nó có nhiều tùy chọn hơn nhưng có thể khó hơn một chút để làm việc theo cách bạn thích.

Tài liệu này cho bạn biết cách xếp hạng kết quả tìm kiếm của mình, nhưng tôi thực sự khuyên bạn nên đọc toàn bộ phần toàn văn từ sách hướng dẫn để có ý tưởng về những gì bạn có thể làm với nó:http://www.postgresql.org/docs/current/interactive/textsearch-controls.html#TEXTSEARCH-RANKING

Về cơ bản, tương đương với truy vấn của bạn sẽ là:

SELECT pictures.id, ts_rank_cd(textsearch, 'phrase') AS score
FROM pictures
ORDER BY score DESC

Như bạn thấy, điều này sử dụng textsearch đó là điều mà bạn sẽ phải tự xác định. Đối với phiên bản ngắn, hãy đọc: http://www.postgresql. org / docs / current /ractive / textsearch -boards.html

Về cơ bản, truy vấn rất đơn giản:

SELECT pictures.id, ts_rank_cd(to_tsvector('english', pictures.title), 'phrase') AS score
FROM pictures
ORDER BY score DESC

Nhưng tôi thực sự khuyên bạn nên thêm các chỉ mục:

CREATE INDEX pictures_title ON pictures USING gin(to_tsvector('english', title));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XÓA tất cả nơi ràng buộc khóa ngoại MySQL không bị lỗi

  2. Làm cách nào để sử dụng PHP đúng cách để mã hóa đối tượng MySQL thành JSON?

  3. thiết lập các cổng mamp thành 80 và 3306

  4. Cách tìm nạp dữ liệu từ cơ sở dữ liệu MySQL vào Excel

  5. Sắp xếp một truy vấn MySQL bằng ORDER BY hoặc với các hàm sắp xếp trong PHP