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é :
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).
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)
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
Partager