Vous n'êtes pas identifié(e).
Bonjour
Je débute et je rencontre une difficulté concernant l'utilisation de la recherche en plein texte.
Je souhaite pouvoir utiliser les dictionnaires en français.
Pour cela j'ai récupéré les fichiers frclassic.affix et frclassic.dict correspondant et je les ai mis dans le repertoire : « C:/Programmes/PostgreSQL/13/share/tsearch_data/frclassic.dict »
Sous pgadmin4, j'ai ensuite déclaré ces dernier via le script suivant :
CREATE TEXT SEARCH DICTIONARY ker_dict (
TEMPLATE = ispell,
DictFile = frclassic,
AffFile = frclassic,
Stopwords = french);
En retour j'ai eu le message suivant :
ERREUR : ERREUR: n'a pas pu ouvrir le fichier dictionnaire « C:/Program Files/PostgreSQL/13/share/tsearch_data/frclassic.dict » : No such file or directory
État SQL : F0000
Je note effectivement que le chemin n'est pas le bon, puisque sur mon PC j'ai : « C:/Programmes/PostgreSQL/13/share/tsearch_data/frclassic.dict »
J'ai recherché dans plusieurs fichier *.txt, je n'ai pas trouvé de référence à "Program Files", que j'aurais pu remplacer par "programmes".
Bizarrement, en renomant les dictionnaires en français en ispell_sample.affix et ispell_sample.dict pour écraser les existants et que je lance le script suivant ça fonctionne ???
CREATE TEXT SEARCH DICTIONARY ker_dict (
TEMPLATE = ispell,
DictFile = ispell_sample,
AffFile = ispell_sample,
Stopwords = french);
Existe-t-il une commande pour changer le pointage du répertoire ? La manip doit-elle ce faire via pgadmin ou autre ?
Pourriez-vous m'indiquer dans quelle direction je dois chercher?
Merci de votre aide.
Hors ligne
Bonjour,
Le fonctionnement est attendu. Pour raisons de sécurité postgres n'accepte que les fichiers qui se trouvent dans le répertoire tsearch_data en question, vous devez donc y placer vos fichiers.
À noter également que ces fichiers doivent être présent sur le serveur et non le client, si les 2 machines sont différentes.
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour,
ERREUR : ERREUR: n'a pas pu ouvrir le fichier dictionnaire « C:/Program Files/PostgreSQL/13/share/tsearch_data/frclassic.dict » : No such file or directory
État SQL : F0000Je note effectivement que le chemin n'est pas le bon, puisque sur mon PC j'ai : « C:/Programmes/PostgreSQL/13/share/tsearch_data/frclassic.dict »
J'ai recherché dans plusieurs fichier *.txt, je n'ai pas trouvé de référence à "Program Files", que j'aurais pu remplacer par "programmes".
Pour info, "C:/Program Files" et "C:/Programmes" ne sont qu'un seul et même répertoire de même que "C:/Program Files (x86)" et "C:/Programmes (x86)" dénommés différemment suivant le contexte.
Par exemple, si vous ouvrez un explorateur et vous placez dans le répertoire, la barre de titre de la fenêtre affichera "C:/Program Files"alors que la barre d'adresse affichera "C:/Programmes"
Hors ligne
Si les deux chemins sont vraiment équivalents, alors postgres aurait du trouver le fichier. Comme indiqué :
À noter également que ces fichiers doivent être présent sur le serveur et non le client, si les 2 machines sont différentes.
S'agit-il de la même machine ou non ?
Julien.
https://rjuju.github.io/
Hors ligne
Une piste...
Comme il y a un espace entre Program et Files
Est-ce le nom du chemin complet est bien entre guillemets qlq part...
Dernière modification par genamiga (28/02/2022 14:22:23)
Hors ligne
Bonjour,
kerebel a écrit :ERREUR : ERREUR: n'a pas pu ouvrir le fichier dictionnaire « C:/Program Files/PostgreSQL/13/share/tsearch_data/frclassic.dict » : No such file or directory
État SQL : F0000Je note effectivement que le chemin n'est pas le bon, puisque sur mon PC j'ai : « C:/Programmes/PostgreSQL/13/share/tsearch_data/frclassic.dict »
J'ai recherché dans plusieurs fichier *.txt, je n'ai pas trouvé de référence à "Program Files", que j'aurais pu remplacer par "programmes".
Pour info, "C:/Program Files" et "C:/Programmes" ne sont qu'un seul et même répertoire de même que "C:/Program Files (x86)" et "C:/Programmes (x86)" dénommés différemment suivant le contexte.
Par exemple, si vous ouvrez un explorateur et vous placez dans le répertoire, la barre de titre de la fenêtre affichera "C:/Program Files"alors que la barre d'adresse affichera "C:/Programmes"
Si l'arborescence C:/Programmes/PostgreSQL/13/share/tsearch_data a été créée manuellement, on se retrouve dans l'explorateur avec deux dossiers Programmes, l'un qui pointe sur "C:\Program Files" et l'autre sur "C:\Programmes".
Sinon comme le dit genamiga, il faudrait probablement encadrer le chemin avec des guillemets.
Hors ligne
Bonsoir, et merci pour vos explications. Comme l'a expliqué Jmarsac, Les répertoires "Programs Files" et "Programmes" sont bien un et même répertoire. A noter qu'il est nécessaire d'avoir les droits pour modifier les fichiers dictionnaires *.affix et *.dict. Par ailleurs, comme l'a indiquer rjuju, il faut faire attention à ne pas confondre les dictionnaires en local et ceux du serveur. lors de l'installation de postgres ces même fichiers sont installés en local, mais ce sont bien ceux du serveur, où sont vos BDD, qui seront utiliser.
Hors ligne