Vous n'êtes pas identifié(e).

#1 13/10/2008 17:03:14

justine2401
Membre

recherche de phrase

Bonjour,

Je débute avec PostgreSQL et je rencontre un problème concernant la recherche de phrases.
Je m'explique.

J'ai une bd document qui contient une table doc possédant 4 colonnes, à savoir id, titre, description, vec_description qui correspond à tsvector(description).

J'aimerais rechercher les documents qui contiennent un certain ensemble de mots dans leur description, par exemple "crimes against humanity". Pour ce faire, j'exécute la requête

SELECT id,titre FROM doc WHERE vec_description @@ to_tsquery('crimes & against & humanity').

Cela fonctionne seulement ça me retourrne également les documents qui possèdent crimes OU against OU humanity. Mais je ne veux que les documents qui contiennent textuellement "crimes against humanity". Est-ce possible??

D'avance merci.

Hors ligne

#2 13/10/2008 17:14:23

gleu
Administrateur

Re : recherche de phrase

En fait, ta requête est bonne, mais il faut lui ajouter un like. Par exemple :

SELECT id,titre FROM doc WHERE vec_description @@ to_tsquery('crimes & against & humanity') and description ilike '%crimes against humanity%'

Tu bénéficies toujours de la puissance et des performances de la recherche plein texte, mais tu lui ajoutes l'exactitude des recherches LIKE.


Guillaume.

Hors ligne

#3 13/10/2008 17:20:45

justine2401
Membre

Re : recherche de phrase

Un grand merci ;-)

Hors ligne

Pied de page des forums