Fichier XML Vs Base de données
9 messages
• Page 1 sur 1
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Fichier XML Vs Base de données
Bonjour à tous!
La problématique est la suivante... J'ai actuellement un petit formulaire de recherche qui fonctionne via AJAX.
Solution actuelle: AJAX
=> A chaque fois que l'utilisateur tape une lettre, cela déclenche un appel à la base de données (MySQL)
=> La requête en elle même est assez simple... Mais assez lourde quand même si bien que certaines fois, le formulaire bogue (échec lors de la connection à la BDD)
=> La requête me permet d'avoir un tri par pertinence des résultats (avec la fonction MATCH - recherche full text) et je limite au 10 premiers résultats (les plus pertinents).
Solution via un fichier texte/xml:
=> Le fichier xml/texte est construit une seule fois (et disponible sur le ftp)
=> A chaque fois que l'utilisateur tape une lettre, je lis ce fichier avec php et je sors les 10 résultats les plus pertinents.
=> ce fichier XML va contenir 3000-4000 lignes
Avantage: je ne fais pas appel à la BDD
Désavantage: je surcharge le serveur...
Je suis sur un hébergement mutualisé
Quelqu'un à une idée de la solution optimale...?
Un grand merci par avance!
Anto
La problématique est la suivante... J'ai actuellement un petit formulaire de recherche qui fonctionne via AJAX.
Solution actuelle: AJAX
=> A chaque fois que l'utilisateur tape une lettre, cela déclenche un appel à la base de données (MySQL)
=> La requête en elle même est assez simple... Mais assez lourde quand même si bien que certaines fois, le formulaire bogue (échec lors de la connection à la BDD)
=> La requête me permet d'avoir un tri par pertinence des résultats (avec la fonction MATCH - recherche full text) et je limite au 10 premiers résultats (les plus pertinents).
Solution via un fichier texte/xml:
=> Le fichier xml/texte est construit une seule fois (et disponible sur le ftp)
=> A chaque fois que l'utilisateur tape une lettre, je lis ce fichier avec php et je sors les 10 résultats les plus pertinents.
=> ce fichier XML va contenir 3000-4000 lignes
Avantage: je ne fais pas appel à la BDD
Désavantage: je surcharge le serveur...
Je suis sur un hébergement mutualisé
Quelqu'un à une idée de la solution optimale...?
Un grand merci par avance!
Anto
- Robinson
- WRInaute passionné

- Messages: 2233
- Inscription: 25 Oct 2005
Re: Fichier XML Vs Base de données
Bonjour,
J'utiliserai la solution ajax avec un fichier texte vu que tu ne fais que le lire et qu'il n'est pas fréquemment modifié.
Mais avec un minimum de lettres avant de lancer la recherche afin de d'éviter des recherches trop vastes.
J'utiliserai la solution ajax avec un fichier texte vu que tu ne fais que le lire et qu'il n'est pas fréquemment modifié.
Mais avec un minimum de lettres avant de lancer la recherche afin de d'éviter des recherches trop vastes.
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Fichier XML Vs Base de données
Ok pour le fichier texte.
J'ai déjà fait en sorte qu'aucun appel ne soit fait si la taille de la requête est inférieure à 3 caractères.
J'avais donc fichier qui contient ceci:
(en format texte)
Ensuite, je me suis dit... trop compliqué, c'est plus simple d'avoir directement les liens...:
... et de faire une recherche en utilisant un pregmatch sur les ancres des liens...
Le soucis, c'est que je n'arrive pas à trouver l'équivalent d'un MATCH (en full texte) pour ordonner mes résultats par pertinence...
une idée...
Merci par avance!
Anto
J'ai déjà fait en sorte qu'aucun appel ne soit fait si la taille de la requête est inférieure à 3 caractères.
J'avais donc fichier qui contient ceci:
(en format texte)
- Code: Tout sélectionner
Saumon de l'atlantique|http://www.example.com/Saumon_Atlantique
Société A|http://www.example.com/Societe_a
etc... etc...
Ensuite, je me suis dit... trop compliqué, c'est plus simple d'avoir directement les liens...:
- Code: Tout sélectionner
<a href="http://www.example.com/Saumon_Atlantique">Saumon de l'atlantique</a>
<a href="http://www.example.com/Societe_a">Société A</a>
etc... etc...
... et de faire une recherche en utilisant un pregmatch sur les ancres des liens...
Le soucis, c'est que je n'arrive pas à trouver l'équivalent d'un MATCH (en full texte) pour ordonner mes résultats par pertinence...
une idée...
Merci par avance!
Anto
-

spout - WRInaute accro

- Messages: 4378
- Inscription: 14 Mai 2003
Re: Fichier XML Vs Base de données
Anto1982 a écrit:=> La requête en elle même est assez simple... Mais assez lourde quand même si bien que certaines fois, le formulaire bogue (échec lors de la connection à la BDD)
=> La requête me permet d'avoir un tri par pertinence des résultats (avec la fonction MATCH - recherche full text) et je limite au 10 premiers résultats (les plus pertinents).
Tu as trouvé de quoi venait ces échecs de connexion, "too many connections" ?
Tu as mis un INDEX sur le champ où se fait la requête FULLTEXT ?
Car je ne vois pas trop comment on peut faire une recherche style FULLTEXT sur un fichier (il faut penser aussi aux stopwords).
Peut-être avec un exec() de grep, mais pour ce qui est de limiter aux plus pertinents (relevance en mysql), je ne vois pas.
Pour la solution par fichier XML ou texte, je te conseille plutôt JSON (ou array sérialisé), je trouve que c'est plus facile à traiter des 2 côtés en JS et PHP (et ca prend souvent moins de place que XML).
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Fichier XML Vs Base de données
Heu, ta BDD consomme aussi des ressources sur le serveur.
OK merci pour l'info. (j'y connais rien....)
Tu as trouvé de quoi venait ces échecs de connexion, "too many connections" ?
Tu as mis un INDEX sur le champ où se fait la requête FULLTEXT ?
Oui Probablement "too many connections"
Oui bien sur (je crois que sinon, la requête n'aboutit pas si il n'y a pas d'index fulltext)
Car je ne vois pas trop comment on peut faire une recherche style FULLTEXT sur un fichier (il faut penser aussi aux stopwords).
Moi non plus
Peut-être avec un exec() de grep, mais pour ce qui est de limiter aux plus pertinents (relevance en mysql), je ne vois pas.
=> Je vais creuser un peu cette piste...
Pour la solution par fichier XML ou texte, je te conseille plutôt JSON (ou array sérialisé), je trouve que c'est plus facile à traiter des 2 côtés en JS et PHP (et ca prend souvent moins de place que XML).
=> Interessant, je vais jeter un oeil du coté JSON.
==
L'avantage de la seconde solution (qui n'est pas moindre) est aussi de regrouper les résultats provenant de 2 tables différentes (produits et sociétés) dans un même fichier, ce qui permet d'avoir en une seule recherche des résultats mixtes.
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Fichier XML Vs Base de données
Boaf... trop compliqué ça me c****** les c*****.
Je vais opter pour la solution suivante:
- Une nouvelle table dans MySQL qui contient 2 colonnes (url + titre/mots clés) et qui regroupe mes 2 types de données produits et sociétés. Basta.
Je vais opter pour la solution suivante:
- Une nouvelle table dans MySQL qui contient 2 colonnes (url + titre/mots clés) et qui regroupe mes 2 types de données produits et sociétés. Basta.
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: Fichier XML Vs Base de données
Et pourquoi ne pas passer par Lucene pour ton moteur de recherche ?
-
Anto1982 - WRInaute passionné

- Messages: 1334
- Inscription: 7 Mai 2009
Re: Fichier XML Vs Base de données
Et pourquoi ne pas passer par Lucene pour ton moteur de recherche ?
Parceque je n'ai pas envie de perdre 2-7 jours
En tout cas merci pour le tuyau!
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Importer un fichier Xml dans une base de données
- Flux XML et importation en base de données
- ajouter données dans fichier xml
- backup de base de données ou est le fichier ??
- Fichier ou base de données des hotels du monde entier
- stockage des données dans un fichier ou une base?
- Importer des données d'un fichier xml dans une BDD MySQL ?
- CMS "pro" sans base de données ? '(xml ou autre)
- Question pour nommage fichier base de données pour Google
- importation de données dans base de données
Consultez la description détaillée des produits ou services de Google suivants : API Google Checkout, Google Co-Op
- Test data centers Google
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données). - Google Suggest
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

