caractères accentuées avec Tsearch 2 sur Postgres

caractères accentuées avec Tsearch 2 sur Postgres - SQL/NoSQL - Programmation

Marsh Posté le 25-05-2005 à 12:08:40    

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.
En sachant que "lycee" n'est pas reconnu comme étant un mot du dictionnaire.
 
 
Merci beaucoup pour votre aide.

Reply

Marsh Posté le 25-05-2005 à 12:08:40   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed