A voir également:
- MySQL:Recherche efficace d'un mot dans une ta
- Mysql community server - Télécharger - Bases de données
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql fatal error ✓ - Forum MySQL
- Le serveur mysql est inaccessible. vérifiez votre configuration. ✓ - Forum MySQL
8 réponses
GallyNet
Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
386
23 juin 2004 à 13:20
23 juin 2004 à 13:20
Pour la casse tu peut déjà utilisé l'opérateur LIKE, il te retrouvera plusieur mots sans tenir compte de la casse (majuscule et minuscule) mais je sais pas pour les voyelle avec accent.
Sinon pour la recherche je pense que ca devrait marcher:
SELCT *
FROM maTable
WHERE champ1 LIKE "%monMot%" OR champ2 LIKE "%monMot%" ...
Sinon pour la recherche je pense que ca devrait marcher:
SELCT *
FROM maTable
WHERE champ1 LIKE "%monMot%" OR champ2 LIKE "%monMot%" ...
Salut,
En effet la creation d'un index est une bonne chose. Tu crée un index sur le syllable les plus courantes. Par exemple, si tu cree un index pour "va", alors chevalier se trouvera dedans.
Pour les accents, tu peux dupliquer les colonnes qui contiennent des accents en colonnes sans accent, sans caracteres speciaux, sans les articles et sans la ponctuation... pour une recherche plus rapide.
En effet la creation d'un index est une bonne chose. Tu crée un index sur le syllable les plus courantes. Par exemple, si tu cree un index pour "va", alors chevalier se trouvera dedans.
Pour les accents, tu peux dupliquer les colonnes qui contiennent des accents en colonnes sans accent, sans caracteres speciaux, sans les articles et sans la ponctuation... pour une recherche plus rapide.
oué commence déjà par regardé la doc pour la commande "like" de mysql.
Ensuite tu peu également créer des index dans té tables et qui te permettent un gain consédérable de temps, mais sa prend aussi pas mal de mémoire sur ta bdd kan ta des grosses tables bien pleines
Ensuite tu peu également créer des index dans té tables et qui te permettent un gain consédérable de temps, mais sa prend aussi pas mal de mémoire sur ta bdd kan ta des grosses tables bien pleines
Pour les accents j'ai trouvé une astuce qui consiste à remplacer dans le mot recherché tous les voyelles accentués ou non par '_' , et puis j'utilise le LIKE...Par contre ça rique de donner pas mal de résultats en trop.... ( Au lieu de chercher batîment par exemple, il va chercher
%b_t_m_nt% , la ça va....mais si je cherche roseau, ça devient carrément n'importe quoi... car on recherche %r_s_ _ _% donc on va trouver 'rasoir' ou 'arrosoir' où d'autres anneries). Enfin bon c'est pas très satisfaisant...
Alors sinon c'est vrai qu'on peut toujours filtrer les résultats en PHP, mais il faut pas que le PHP travaille sur trop d'enregistrements...
Sinon iBook, je vois pas en quoi l'utilisation des Index va considérablement améliorer la vitesse des recherches, puisqu'il s'agit de rechercher en plein milieu de certains champs certains mots...à moins que j'aie mal pigé le principe des Indexs ....
%b_t_m_nt% , la ça va....mais si je cherche roseau, ça devient carrément n'importe quoi... car on recherche %r_s_ _ _% donc on va trouver 'rasoir' ou 'arrosoir' où d'autres anneries). Enfin bon c'est pas très satisfaisant...
Alors sinon c'est vrai qu'on peut toujours filtrer les résultats en PHP, mais il faut pas que le PHP travaille sur trop d'enregistrements...
Sinon iBook, je vois pas en quoi l'utilisation des Index va considérablement améliorer la vitesse des recherches, puisqu'il s'agit de rechercher en plein milieu de certains champs certains mots...à moins que j'aie mal pigé le principe des Indexs ....
pourquoi faire simple (et inefficace: avec '_' ca va faire des confusions entre les mots) quand on peut faire compliqué....
il suffit simplement de convertir le mot-clé en tranformant les ('â','â','à') en 'a', ('ë','ê','è','é'), en 'e' (idem pour i,o,u) ...
et ca marche.
ou sinon la solution de GallyNet
il suffit simplement de convertir le mot-clé en tranformant les ('â','â','à') en 'a', ('ë','ê','è','é'), en 'e' (idem pour i,o,u) ...
et ca marche.
ou sinon la solution de GallyNet
ben je c pas ce que contient exactement ta bdd, mé tu peu définir des mots clés (mots les plus souvent tapé par tes visiteurs) pour caractériser un texte. Tu met un index dessus et ca peut te faire gagner en rapididé de requète, mais bon.... ca vau ce que ca vau.... tout dépend de l'utilisation exacte de ton moteur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
GallyNet
Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
386
23 juin 2004 à 18:38
23 juin 2004 à 18:38
Tu peut utiliser les expressions regulieres pour le probleme avec les accents, dans le cas de" batîment":
SELECT * FROM maTable WHERE champ1 REGEXP "b[aâà]1t[îiï]m[eéè^é¨2]nt";
(pas sur du code mais il doit rssembleer a ca)
Par contre tu doit modifier le mot via t'on script (PHP ?)
SELECT * FROM maTable WHERE champ1 REGEXP "b[aâà]1t[îiï]m[eéè^é¨2]nt";
(pas sur du code mais il doit rssembleer a ca)
Par contre tu doit modifier le mot via t'on script (PHP ?)
oui ca pourrai etre une bonne idée : tu duplique la colone qui contient le texte a l'interieur duquel tu cherche tes mots (genre la colone "description" et "titre" pour un annuaire de site par exemple) et dans les colones dupliquées, tu met le meme texte, mais sans accent ni ponctuation("description_format" "titre_format" par ex.). Et pour tes recherches, ben tu cherchera directement dans le texte formaté ("description_format" "titre_format")
Essaye un interclassement ‘latin1_swedish_ci’ pour ta table et tes champs recherchés.
Tes requêtes ignoreront alors la casse et les accents.
Tes requêtes ignoreront alors la casse et les accents.