Mysql
 sql >> база данни >  >> RDS >> Mysql

FULLTEXT заявка с резултати/рангове в Postgresql

Пълнотекстовото търсене на Postgres е малко по-различно от пълнотекстовото търсене на MySQL. Има много повече опции, но може да бъде малко по-трудно да работите така, както ви харесва.

Този документ ви казва как да класирате резултатите от търсенето си, но силно препоръчвам да прочетете целия раздел с пълен текст от ръководството, за да получите представа какво можете да правите с него:http://www.postgresql.org/docs/current/interactive/textsearch-controls.html#TEXTSEARCH-RANKING

По принцип еквивалентът на вашата заявка би бил това:

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

Както можете да видите, това използва textsearch което е нещо, което ще трябва да дефинирате сами. За кратката версия прочетете:http://www.postgresql. org/docs/current/interactive/textsearch-tables.html

Заявката по същество е много проста:

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

Но силно препоръчвам добавянето на индекси:

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. pdo безплатен резултат

  2. Проектиране на база данни за първи път:свръхинженеринг ли съм?

  3. Грешка при изпращане на изход от mysql заявка към csv файл

  4. Използването на колона Guid като идентификационен номер в NHibernate причинява изключение при форматиране при използване на MySQL

  5. Highchart - Използване на PHP, MYSQL и jQuery.get за анализиране на данни