Le 22/12/2011 19:20, Pascale a écrit :
> Olivier Masson<
sis...@laposte.net> écrivait
> news:4ef30fe8$0$5698$
ba4a...@reader.news.orange.fr:
>
>> Comment est conçu ton site s'il utilise une base de données mais que ce
>> n'est pas un CMS ? Lorsque tu ajoutes un article, tu fais comment ? Tu
>> n'as pas de mots-clés associés aux articles ?
>
> On ne peut pas dire que j'ajoute des articles à proprement parler.
> Regarde :
http://www.la-grille-verte.net/kekcestruc/kekmenu.php
>
> La 1ère version du site date de 1999, c'était un site interactif avant
> l'heure.
Je connais ton site que j'ai utilisé quelques fois. Je pense même que tu
as répondu jadis à certaines de mes questions sur le groupe jardinage.
>
> Bon d'accord, le design est encore vieillot (la version actuelle date de
> 2007), mais ça marche (-:
>
> L'idée principale est de permettre une recherche parmi les plantes
> identifiées, simple recherche sur le nom pour l'instant.
Ça, c'est élémentaire si un champs de ta table comporte le nom.
Toutefois, la recherche fulltext pourrait être très utile car taper
exactement le nom latin d'une plante n'est pas évident. En cas
d'approximation, la recherche fulltext devrait renvoyer les bons résultats.
> à faire des choses très compliquées, mais il faudrait par exemple que si
> une personne tape : « lavendula oficinalis », ou « lavandula officinal »,
> je sois capable de lui fournir comme résultat Lavandula officinalis syn.
> angustifolia. Si la personne entre comme recherche « renoncule », ce serait
> bien que je puisse lui sortir comme résultat les Ranunculus que j'ai en
> stock, mais ça, c'est un peu du luxe (car en principe, on n'a que les
> noms scientifiques, pas les noms vernaculaires)... J'envisageais d'utiliser
> la fonction metaphone dans PHP, je crois que ça marche pas mal.
> Le problème, c'est que je suis une buse en MySQL, pas guère mieux en PHP...
> et j'ai même du mal à savoir ce qui est du ressort de l'un et de l'autre.
> Par exemple, si une personne recherche « rosa », si je demande à MySQL tout
> ce qui est "LIKE" rosa, je pense qu'il saura me ressortir « Rosa
> damascena », « Rosa canina », etc. Par contre, si une personne recherche
> « rotgersia », je pense que seule l'utilisation de metaphone en PHP
> permettra de trouver « Rodgersia ».
Effectivement, like ne te sera d'aucune aide.
Pour metaphone (je connaissais soundex, mais c'est un alias), cela te
permet de comparer 2 chaînes. Or toi, tu veux comparer une chaîne et un
possible résultat dans une base. Certes, si tu as peu de références, tu
peux comparer le mot entré avec toutes les références de ta base.
Par contre, la fonction soundex de PHP se base sur la prononciation
anglaise.
Donc soit tu trouves une implémentation française (j'ai déjà vu ça),
soit tu utilises la fonction levenshtein qui trouve la "distance" entre
2 mots, en fonction des différences. Ainsi, tu peux considérer que la
plus courte distance correspond au résultat le plus probable (sauf si la
distance reste trop importante). Mais ceci risque d'être très très
gourmand en CPU.
Je pense qu'il faudrait utiliser du fulltext et demander à l'utilisateur
s'il entre le nom commun ou latin. Ainsi, tu fais une recherche fulltext
sur le bon champ et tu sors le nom latin/commun associé (et les photos,
etc.)
>
> En gros, plus je réfléchis, moins je trouve (:
>
>> C'est le but des algo fulltext : les résultats sont classés par
>> pertinence. La mise en place n'est pas trop complexe, mais il faut
>> prendre pas mal de précautions s'il s'agit d'un site avec bcp de visites
>> ou hébergé sur un petit serveur.
>
> Je n'ai quand même que quelques milliers d'enregistrements, et le site
> n'est pas aussi fréquenté qu'il l'a été par le passé, il faut le
> reconnaître. Je doute d'arriver à une saturation du serveur, par contre, ce
> que je redoute plus, ce serait des temps de réponse des requêtes qui
> énerveraient les visiteurs.
Ton site est bien, mais pas très beau (pour rester gentil ;)) et pas du
tout ergonomique. Du coup, je doute qu'il soit très bien référencé.
Pour la durée des requêtes, il faut tester. Je n'ai jamais fait de
fulltext ; je m'y intéresse car je cherche à faire une GED (gestion
electronique de documents) sommaire donc je regarde toutes les solutions
(et c'est surtout Lucene qui s'impose).
Si tu as besoin d'un coup de main, je ferai ce que je peux, dans la
limite du temps dispo.