IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Optimiser moteur de recherche maison


Sujet :

MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut Optimiser moteur de recherche maison
    * Bonjour, *

    je voudrais créer un moteur de recherche sur quelques 10 000 mots clés de cette forme:

    m1,m2,m3 ect....
    J'aimerais chercher une méthode la plus rapide et optimisée
    j'ai 2 méthodes :
    - Soit créer 10 000 lignes sur la base mysql et faire une requête classique pour chercher
    - Soit créer une ligne avec les 10 000 mots clés et
    1-utiliser une requête sql avec REGEXP
    2-charger le bloc de mots clés dans un tableau array et utiliser les REGEXP de jquery

    merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut bigs3232.

    Je ne comprends pas comment vos dix mille mots vont se présenter ?
    Est-ce juste une liste de mots séparées par une virgule ? Et pour quel usage ?
    Quel désirez-vous faire avec ?
    Oui, je sais un moteur de recherche, mais pour recherchez quoi ?
    Habituellement, c'est rechercher la présence d'un mot dans un texte.

    Sous MySql, le Full Text Serach permet de rechercher le plus rapidement un mot dans un texte.
    --> https://dev.mysql.com/doc/refman/5.7...xt-search.html

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre actif
    Homme Profil pro
    Sysadmin Linux
    Inscrit en
    Mars 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Sysadmin Linux

    Informations forums :
    Inscription : Mars 2017
    Messages : 76
    Points : 200
    Points
    200
    Par défaut
    Ben la methode la plus optimisée est vite vu :

    créer 10 000 lignes sur la base mysql et faire une requête classique pour chercher
    Faire load une table sur un field comprenant 10 k mots (a chaque recherche, il va load 10 K mots...), pour sortir le mot qui t'interesses via les regex est tout simplement crade.

    Si tu tiens vraiment a faire sur un champ, full text search comme dit precedement. (SphinxSearch est performant dans ce domaine, plus que la fonction basique de mySQL)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci à vous deux .
    pour répondre à Artemus24 oui les mots clés sont séparés par des virgules .et l'internaute cherche un mot clé et savoir si ca existe ou pas
    pour emutramp c'est pas mal vos idées.
    Je pensais à une autre possibilité qui est soit
    -Au lieu de faire un load en sql je préfere enregistrer sur un fichier plat txt en cache et faire requete d'un mot clé avec REGEXP sur ce fichier à chaque fois qu'un internaute fait une requete sur un mot clé précis.
    A titre d'info,je peux le faire du REGEXP soit en passant par Jquery soit en PHP mais par contre je ne sais pas laquelles des 2 méthodes est la plus rapide
    que pensez vous de cette méthode ?

  5. #5
    Membre actif
    Homme Profil pro
    Sysadmin Linux
    Inscrit en
    Mars 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Sysadmin Linux

    Informations forums :
    Inscription : Mars 2017
    Messages : 76
    Points : 200
    Points
    200
    Par défaut
    Regex sur un fichier text, parfait, par contre, utilisez le format json pour vos mots clef a l'instar d'un délimiteur a caractère

    Les deux sont ok (Php ou Jquery) et gère le json très simplement :

    PHP

    http://php.net/manual/en/function.json-decode.php

    Jquery

    http://api.jquery.com/jquery.getjson/

    On ne peut pas vraiment comparer la méthode la plus rapide car ces 2 langages sont complètement opposés, l’utilisation de*l’un ou de l’autre, c’est selon vos besoins ou préférences

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci emutramp .je suis encore en phase de réfléxion mais vous m'avez donner quelques pistes a creuser

Discussions similaires

  1. Optimisation moteur de recherche et liste
    Par Pierre69200 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/05/2015, 13h39
  2. Optimisation d'un moteur de recherche
    Par PIEPLU dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/01/2012, 10h56
  3. Optimiser une requête SQL d'un moteur de recherche
    Par kibodio dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/03/2005, 20h55
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo