Je travaille pour ajouter la recherche à mon application de rails de PostgreSQL 9.1. Voici la configuration:Un index DB est-il possible pour optimiser une méthode pg_search, pg_search_scope?
class Comment < ActiveRecord::Base
include PgSearch
pg_search_scope :search_by_content, :against => :content
Rails C, commande:
Comment.where(:commentable_id => 33).search_by_content('pgsql').count
Rails Log:
(348.1ms) SELECT COUNT(*) FROM "comments" WHERE "comments"."commentable_id" = 33 AND (((to_tsvector('simple', coalesce("comments"."content"::text, ''))) @@ (to_tsquery('simple', ''' ' || 'pgsql' || ' '''))))
Après l'installation de la pierre précieuse, et la mise en place du modèle de commentaire, les instructions mentionnées rien à propos de l'ajout d'un index DB pour optimiser les performances. Étant donné que la requête prend déjà 348.1ms localement, je suis curieux que cela puisse être optimisé pour être plus performant?
Merci
Pour ceux d'entre nous qui ne parlent pas Rails, quelles sont les requêtes sous-jacentes de ce 'pg_search'? Est-ce la recherche en texte intégral? Si c'est le cas, lisez le manuel de PostgreSQL sur la recherche en texte intégral, qui traite des index GiST pour le texte intégral. –
La requête qui est exécutée est affichée ci-dessus dans le "Rails Log" qui montre le SQL brut envoyé à PostgreSQL – AnApprentice
Gah, je suis aveugle. Pardon. Alors oui, il utilise la recherche en texte intégral. –