OVH Cloud OVH Cloud

MySQL recalcitrant avec â en fulltext

2 réponses
Avatar
Stéphane
Bonjour à tous,

Je suis un peu surpris et aussi déçu. En voulant faire un recherche FULLTEXT sur plus champ d'une table, il ne retrouve
jamais ce mot: Neuchâtel.

J'ai fais des tests, tous les autres accents fonctionnent. Le circonflexe sur le ô est retrouvé, le â est retrouver . Je
ne comprends pas
pourquoi ça fonction avec la lettre o et pas la lettre a.

Est-ce un problème de version? Je travail avec XP, MySQL 3.23.49 et Linux, MySQL 3.23.53a

D'avance merci à qui pourra m'aider.

Je joins les données.

CREATE TABLE velo_itineraire_a_copie (
Iti smallint(4) unsigned NOT NULL auto_increment,
Cyc smallint(5) unsigned NOT NULL default '0',
titre varchar(80) NOT NULL default '',
depart varchar(32) NOT NULL default '',
arrivee varchar(32) NOT NULL default '',
localites text NOT NULL,
itineraire text NOT NULL,
distance decimal(4,2) NOT NULL default '0.00',
duree_estimee time NOT NULL default '00:00:00',
denivelation smallint(5) unsigned NOT NULL default '0',
pente_maxi decimal(3,1) unsigned NOT NULL default '0.0',
Deg tinyint(3) unsigned NOT NULL default '0',
Pro tinyint(3) unsigned NOT NULL default '0',
boucle enum('oui','non') NOT NULL default 'oui',
pays enum('Suisse','France','Belgique','Allemagne','Autriche','Canada','Danemark','Espagne','Etats
Unis','Finlande','Grèce','Hongrie','Irlande','Islande','Italie','Liechtenstein','Luxembourg','Malte','Monaco','Norvege',
'Pays-Bas','Pologne','Portugal','Roumanie','Royaume-Uni','Russie','Saint-Marin','Suède','Yougoslavie') NOT NULL default
'Suisse',
PRIMARY KEY (Iti),
KEY Pro (Pro),
KEY Deg (Deg),
KEY Cyc (Cyc),
FULLTEXT KEY recherche (titre,depart,arrivee,localites,itineraire)
) TYPE=MyISAM;

INSERT INTO velo_itineraire_a_copie VALUES (1, 1, 'Neuchâtel - Petite sortie', 'Neuchâtel', 'Neuchâtel', 'Hauterive,
St-Blaise, Cornaux, Thielle, Marin, St.Blaise, Hauterive,', 'Prendre direction Bienne. A Cornaux, après les feux,
tourner à droite et passer sur le pont. A Thielle, continuer en direction de Neuchâtel.', '21.10', '00:50:00', 50,
'4.0', 1, 1, 'oui', 'Suisse');
INSERT INTO velo_itineraire_a_copie VALUES (2, 1, 'Neuchâtel - sortie de décontraction', 'Neuchâtel', 'Neuchâtel',
'Hauterive, St-Blaise, Cornaux, Cressier, Le Landeron, Gals, Thielle, Marin, St-Blaise, Hauterive,', 'Partir direction
Bienne, arrivé au giratoire à l\'entrée du Landeron, prendre direction Ins. \r\nAu giratoire suivant, prendre direction
Gals.\r\nPasser une petit bout sur la semi-autoroute et prendre direction Marin.', '29.00', '01:00:00', 50, '3.0', 1, 1,
'oui', 'Suisse');
INSERT INTO velo_itineraire_a_copie VALUES (7, 1, 'Neuchâtel - Ins - Morat - Avenches', 'Neuchâtel', 'Neuchâtel',
'Hauterive,St-Blaise, Marin, Thielle, Gampelen, Ins, Sugier, Muntelier, Morat, Meyriez, Faoug, Avenches, Chabrey,
Champmartin, Cudrefin, La Sauge, Gampelen, Thielle, Marin, St.Blaise, Hauterive,', 'Neuchâtel => Bienne.\r\nSt-Blaise =>
Marin, puis Morat.\r\nAprès Sugier, à ~ 1.5 km, prendre à droite avant le passage à niveau => Muntelier.\r\nContinuer
direction Lausanne jusqu\'à Avenches.\r\nAvenches => Neuchâtel.\r\n\r\n• A ~ 1.5km d\'Avenches, tu trouveras la seule
montée de l\'itinéraire, c\'est assez raide et trompeur!', '68.40', '02:30:00', 237, '6.0', 3, 2, '', 'Suisse');


SELECT *
FROM `velo_itineraire_a_copie`
WHERE MATCH (
titre, depart, arrivee, localites, itineraire
)
AGAINST (
'Neuchâtel'
)




Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.

http://www.velo-passion.com pour les fans de vélo
http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?

2 réponses

Avatar
pgulutzan
Bonjour,

Non, ce n'est pas "un problème de version" et ce n'est pas un problème
avec le circonflexe. Le mot "Neuchâtel" se trouve trop souvent. Lisez ce
document: http://www.nexen.net/docs/mysql/annotee/fulltext-search.php
Lisez surtout l'explication pour l'exemple
mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('MySQL');

Peter Gulutzan
MySQL AB

"Stéphane" wrote in message news:<41108ceb$0$15271$...
Bonjour à tous,

Je suis un peu surpris et aussi déçu. En voulant faire un recherche FULLTEXT sur plus champ d'une table, il ne retrouve
jamais ce mot: Neuchâtel.

J'ai fais des tests, tous les autres accents fonctionnent. Le circonflexe sur le ô est retrouvé, le â est retrouver . Je
ne comprends pas
pourquoi ça fonction avec la lettre o et pas la lettre a.

Est-ce un problème de version? Je travail avec XP, MySQL 3.23.49 et Linux, MySQL 3.23.53a

D'avance merci à qui pourra m'aider.

Je joins les données.

CREATE TABLE velo_itineraire_a_copie (
Iti smallint(4) unsigned NOT NULL auto_increment,
Cyc smallint(5) unsigned NOT NULL default '0',
titre varchar(80) NOT NULL default '',
depart varchar(32) NOT NULL default '',
arrivee varchar(32) NOT NULL default '',
localites text NOT NULL,
itineraire text NOT NULL,
distance decimal(4,2) NOT NULL default '0.00',
duree_estimee time NOT NULL default '00:00:00',
denivelation smallint(5) unsigned NOT NULL default '0',
pente_maxi decimal(3,1) unsigned NOT NULL default '0.0',
Deg tinyint(3) unsigned NOT NULL default '0',
Pro tinyint(3) unsigned NOT NULL default '0',
boucle enum('oui','non') NOT NULL default 'oui',
pays enum('Suisse','France','Belgique','Allemagne','Autriche','Canada','Danemark','Espagne','Etats
Unis','Finlande','Grèce','Hongrie','Irlande','Islande','Italie','Liechtenstein','Luxembourg','Malte','Monaco','Norvege',
'Pays-Bas','Pologne','Portugal','Roumanie','Royaume-Uni','Russie','Saint-Marin','Suède','Yougoslavie') NOT NULL default
'Suisse',
PRIMARY KEY (Iti),
KEY Pro (Pro),
KEY Deg (Deg),
KEY Cyc (Cyc),
FULLTEXT KEY recherche (titre,depart,arrivee,localites,itineraire)
) TYPE=MyISAM;

INSERT INTO velo_itineraire_a_copie VALUES (1, 1, 'Neuchâtel - Petite sortie', 'Neuchâtel', 'Neuchâtel', 'Hauterive,
St-Blaise, Cornaux, Thielle, Marin, St.Blaise, Hauterive,', 'Prendre direction Bienne. A Cornaux, après les feux,
tourner à droite et passer sur le pont. A Thielle, continuer en direction de Neuchâtel.', '21.10', '00:50:00', 50,
'4.0', 1, 1, 'oui', 'Suisse');
INSERT INTO velo_itineraire_a_copie VALUES (2, 1, 'Neuchâtel - sortie de décontraction', 'Neuchâtel', 'Neuchâtel',
'Hauterive, St-Blaise, Cornaux, Cressier, Le Landeron, Gals, Thielle, Marin, St-Blaise, Hauterive,', 'Partir direction
Bienne, arrivé au giratoire à l'entrée du Landeron, prendre direction Ins. rnAu giratoire suivant, prendre direction
Gals.rnPasser une petit bout sur la semi-autoroute et prendre direction Marin.', '29.00', '01:00:00', 50, '3.0', 1, 1,
'oui', 'Suisse');
INSERT INTO velo_itineraire_a_copie VALUES (7, 1, 'Neuchâtel - Ins - Morat - Avenches', 'Neuchâtel', 'Neuchâtel',
'Hauterive,St-Blaise, Marin, Thielle, Gampelen, Ins, Sugier, Muntelier, Morat, Meyriez, Faoug, Avenches, Chabrey,
Champmartin, Cudrefin, La Sauge, Gampelen, Thielle, Marin, St.Blaise, Hauterive,', 'Neuchâtel => Bienne.rnSt-Blaise =>
Marin, puis Morat.rnAprès Sugier, à ~ 1.5 km, prendre à droite avant le passage à niveau => Muntelier.rnContinuer
direction Lausanne jusqu'à Avenches.rnAvenches => Neuchâtel.rnrn? A ~ 1.5km d'Avenches, tu trouveras la seule
montée de l'itinéraire, c'est assez raide et trompeur!', '68.40', '02:30:00', 237, '6.0', 3, 2, '', 'Suisse');


SELECT *
FROM `velo_itineraire_a_copie`
WHERE MATCH (
titre, depart, arrivee, localites, itineraire
)
AGAINST (
'Neuchâtel'
)




Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.

http://www.velo-passion.com pour les fans de vélo
http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
Avatar
Stéphane
"Peter Gulutzan" a écrit.
Bonjour,

Non, ce n'est pas "un problème de version" et ce n'est pas un problème
avec le circonflexe. Le mot "Neuchâtel" se trouve trop souvent. Lisez ce
document: http://www.nexen.net/docs/mysql/annotee/fulltext-search.php
Lisez surtout l'explication pour l'exemple
mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('MySQL');

Peter Gulutzan
MySQL AB



Merci beaucoup,

En effet, dans mon cas c'est plutôt embêtant.
Je vais supprimer certaines colonnes et ainsi je pense pouvoir améliorer la recheche.
Je vais lire les articles sur les recherches et ainsi pour faire une recherche optimale.


Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.

http://www.velo-passion.com pour les fans de vélo
http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?