Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2005, 10h53   #1
Invité de passage
 
Inscription : mai 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 2
Points : 0
Points : 0
Par défaut caractères accentués avec Tsearch2

Bonjour,

J'ai tenté d'installer le module T-search 2 de PostgreSQL avec le dictionnaire français mais je rencontre un problème avec les mots accentués. Je voudrais que "lycée" et "lycee" ("société"-"societe", "accentué"-"accentue"...) soit considéré comme étant le même mot, qu'il n'y ait pas de distinction. Ceci permettrait d'avoir des résultats pertinents, y compris pour les personnes qui ne tapent pas les caratères accentués.


Ma configuration est la suivante :

- dans la table pg_ts_dict :

dict_name
fr_ispell
dict_initoption
Dict_File=/usr/share/dict/french.dict,AffFile=/usr/lib/ispell/french.aff,StopFile=/usr/share/postgresql/contrib/french.stop

french.dict contient des lignes du genre (S précise que c'est un mot singulier, F précise que c'est un mot féminin) :
lycopode/S
lycose/S
lycra
lycène/S
lycée/S
lycéenne/F
lyddite/S

french.aff permet de décoder les mots

french.stop contient des petits mots non inclus dans la recherche (le, la, les...)


- dans la table pg_ts_cfg :

ts_name prs_name locale
fr default fr_FR


- dans la table pg_ts_cfgmap
ts_name tok_alias dict_name
fr email {simple}
fr file {simple}
fr float {simple}
fr host {simple}
fr hword {fr_ispell,simple}
fr int {simple}
fr lhword {fr_ispell,simple}
fr lpart_hword {fr_ispell,simple}
fr lword {fr_ispell,simple}
fr nlhword {fr_ispell,simple}
fr nlpart_hword {fr_ispell,simple}
fr nlword {fr_ispell,simple}
fr part_hword {simple}
fr sfloat {simple}
fr uint {simple}
fr uri {simple}
fr url {simple}
fr version {simple}
fr word {fr_ispell,simple}


J'ai ensuite une table t_avis, qui contient un champ avis et un vecteur de cet avis, renseigné avec :
update t_avis set vectors=to_tsvector('fr',avis).
C'est donc sur cette table que survient mon problème.

Ma question est donc : est-il possible que, lorsqu'une personne tape "lycee", on recherche dans le champ vectors comme si la personne avait tapé "lycée" ? Ou inversement, on recherche "lycee" dans le vecteur qui au préalable contient des mots non accentués.


Merci beaucoup pour votre aide.
nilytel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2005, 11h18   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
La fonction to_ascii(text [, codage]) doit pouvoir servir sauf sur une base en Unicode

Code :
 ... to_ascii('lycée','LATIN1')
KrysKool
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2005, 11h34   #3
Invité de passage
 
Inscription : mai 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 2
Points : 0
Points : 0
Si j'utilise cette fonction, le mot "lycee" n'est plus considéré comme un mot du dictionnaire T-search. Du coup, si je tape "lycee" dans ma recherche, il va trouver. Mais si j'écris "lycée" ou "lycées", je n'aurai pas de réponses.
nilytel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h43.


 
 
 
 
Partenaires

Hébergement Web