Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan FULLTEXT dengan skor/peringkat di Postgresql

Pencarian teks lengkap Postgres sedikit berbeda dari pencarian teks lengkap MySQL. Ini memiliki lebih banyak pilihan tetapi bisa sedikit lebih sulit untuk bekerja sesuai keinginan Anda.

Dokumen ini memberi tahu Anda cara menentukan peringkat hasil pencarian Anda, tetapi saya sangat menyarankan Anda membaca seluruh bagian teks lengkap dari manual untuk mendapatkan ide tentang apa yang dapat Anda lakukan dengannya:http://www.postgresql.org/docs/current/interactive/textsearch-controls.html#TEXTSEARCH-RANKING

Pada dasarnya, yang setara dengan kueri Anda adalah ini:

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

Seperti yang Anda lihat, ini menggunakan textsearch yang merupakan sesuatu yang harus Anda definisikan sendiri. Untuk versi singkat, baca:http://www.postgresql. org/docs/current/interactive/textsearch-tables.html

Permintaannya pada dasarnya sangat sederhana:

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

Tapi saya sangat menyarankan untuk menambahkan indeks juga:

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. Gambaran Umum Replikasi Silang PostgreSQL &MySQL

  2. Bagaimana cara mengetahui dari tabel mana hasil berasal saat menggunakan UNION di MySQL

  3. Apa cara termudah untuk mengekstrak tanggal mulai dan berakhir sprint dari JIRA db?

  4. java.sql.SQLException:Koneksi ditutup [POOL-HikariCP]

  5. Mengirimkan formulir 50 bidang ke beberapa tabel; POST biasa, POST AJAX atau lainnya?