Bonjour,
J'ai créé un index plein-texte de type GIN sur une colonne text, lorsque je fais des requêtes sur ce champ l'index n'est pas utilisé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE INDEX token_idx ON docs USING  gin(to_tsvector('english', text));
 
EXPLAIN select id_doc from docs where text @@ to_tsquery('english', 'anarchism');
                         QUERY PLAN                         
------------------------------------------------------------
 Seq Scan on docs  (cost=0.00..319429.04 rows=2666 width=4)
   Filter: (text @@ '''anarch'''::tsquery)
Je sais que lorsque la clause WHERE n'est pas assez restrictive il est préférable de faire un scan de la table, mais dans mon cas selon EXPLAIN seuls 2666 documents semblent concernés par la clause (sachant que la table en contient 2,7 millions).

Est-ce que j'ai loupé quelque chose dans la façon de créer l'index ou dans la requête qui devrait l'utiliser ?
Merci d'avance