GNT sans publicité, site mobile, fonctionnalitées exclusives...

Recherche d'une recherche

Le
Pascale
Depuis le temps que je le dis, il faudrait bien que je m'y mette : il me
faudrait un petit moteur de recherche sur l'un de mes sites.
Pas trop envie d'inviter la World Company (Google), en plus j'aimerais
pouvoir préciser dans quel(s) champ(s) se fait la recherche. De préférence
en PHP, comme ça il y aurait une petite chance que j'y comprenne un peu
quelque chose et que je puisse l'adapter à ce que je veux.
En faisant "search engine" chez Sourceforge, on trouve des quantités de
trucs, mais difficile de s'y retrouver et de faire son choix.
Quelqu'un aurait-il un avis, un conseil ?

--
Pascale
http://www.la-grille-verte.net
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Masson
Le #24096401
Le 20/12/2011 20:14, Pascale a écrit :
Depuis le temps que je le dis, il faudrait bien que je m'y mette : il me
faudrait un petit moteur de recherche sur l'un de mes sites.
Pas trop envie d'inviter la World Company (Google), en plus j'aimerais
pouvoir préciser dans quel(s) champ(s) se fait la recherche. De préférence
en PHP, comme ça il y aurait une petite chance que j'y comprenne un peu
quelque chose et que je puisse l'adapter à ce que je veux.
En faisant "search engine" chez Sourceforge, on trouve des quantités de
trucs, mais difficile de s'y retrouver et de faire son choix.
Quelqu'un aurait-il un avis, un conseil ?




Si ton site est géré par un CMS, c'est inclus donc je pense que ce n'est
pas le cas.
Sinon, il faut par exemple concevoir un système de tag pour être rapide
et efficace.
Si toutes tes données sont en base de données, tu trouveras probablement
des scripts en PHP. En MySQL et PostgreSQL, tu peux faire des recherches
sur les champs que tu souhaites mais aussi faire un recherche dite
fulltext, qui est très puissante (voir
http://dev.mysql.com/doc/refman/5.0...olean.html et
http://docs.postgresql.fr/9.1/textsearch.html).
Si rien n'est en base, il exsite des outils natifs, au moins pour
PostgreSQL et surement pour MySQL, permettant d'indexer du texte brut,
mais la mise en place sera bien plus délicate.
Pascale
Le #24096671
Olivier Masson news:4ef218aa$0$2496$:

Si ton site est géré par un CMS, c'est inclus donc je pense que ce n'est
pas le cas.



'xactement !

Sinon, il faut par exemple concevoir un système de tag pour être rapide
et efficace.
Si toutes tes données sont en base de données, tu trouveras probablement
des scripts en PHP.



C'est le cas, en effet, tout est stocké dans les tables d'une base de
données.

En MySQL et PostgreSQL, tu peux faire des recherches
sur les champs que tu souhaites mais aussi faire un recherche dite
fulltext, qui est très puissante (voir
http://dev.mysql.com/doc/refman/5.0...olean.html et
http://docs.postgresql.fr/9.1/textsearch.html).



Je ne connais pas la recherche fulltext, je vais aller voir ça.

Merci pour ton aide. Il m'a fallu un petit moment pour comprendre que la
plupart des moteurs de recherche tout faits ne convenaient pas dans mon
cas, car il ne s'agit pas d'indexer des pages, puisque ces pages sont
dynamiques, elles « n'existent » pas, ce que je cherche est entièrement
dans la base de données.

Sortir les résultats par ordre décroissant de pertinence ne va pas être
très simple me semble-t-il...

--
Pascale
http://www.la-grille-verte.net
Pascal Poncet
Le #24096721
Le 21/12/2011 19:52, Pascale a écrit :
Sortir les résultats par ordre décroissant de pertinence ne va pas être
très simple me semble-t-il...



Pour sûr, vu que la World Company, comme tu l'appelles, emploie une
armée de docteurs en mathématique pour affiner ses algorithmes.
Voir
[http://www.claymath.org/programs/ou...arlson.pdf]
pour les boss en math !

Cela dit, avec une simple instruction LIKE '%recherche%' dans une clause
WHERE, tu arrives à de pas trop mauvais résultats.
Voir
[http://dev.mysql.com/doc/refman/5.0...tions.html]

Attention, toutefois, à bien gérer le collationnement, sinon tu auras
des problèmes avec les caractères accentués.
Voir [http://dev.mysql.com/doc/refman/5.0...aults.html]


--
Cordialement,
Pascal
Denis Beauregard
Le #24096981
Le Wed, 21 Dec 2011 20:28:15 +0100, Pascal Poncet
fr.comp.infosystemes.www.auteurs:

Le 21/12/2011 19:52, Pascale a écrit :
Sortir les résultats par ordre décroissant de pertinence ne va pas être
très simple me semble-t-il...



Pour sûr, vu que la World Company, comme tu l'appelles, emploie une
armée de docteurs en mathématique pour affiner ses algorithmes.
Voir
[http://www.claymath.org/programs/ou...arlson.pdf]
pour les boss en math !



Je ne suis pas certain du tout qu'il s'agisse de docteurs en
math !!! Je fais en général 3 sortes de recherches.

En généalogie, il s'agit en général d'un couple ou d'une personne.
Google favorise les sites qui copient et on trouve donc au début
des résultats de 123people, pipl, yasni et autres requins qui
utilisent l'API de Yahoo.

Mon 2e type de recherches, c'est pour savoir comment faire quelque
chose. Ici, ce sont surtout des blogues qui sortent au début, donc
n'importe quoi écrit par n'importe qui et souvent pas très pertinent.

Je cherche aussi des informations sur des produits précis. Par
exemple, j'ai acheté tel machin et je voudrais voir le site du
fabricant. Le résultat, ce sont plutôt des sites vendeurs et non des
sites utiles.

Alors, pour les algorithmes, c'est foutu depuis longtemps.

Cela dit, avec une simple instruction LIKE '%recherche%' dans une clause
WHERE, tu arrives à de pas trop mauvais résultats.
Voir
[http://dev.mysql.com/doc/refman/5.0...tions.html]



Cela dépend aussi du nombre de données et de l'affluence sur le site.
Avec 50 000 mots, cela doit répondre assez rapidement. Avec 1 million,
le like % commence à être lent et il vaut mieux optimiser.

Attention, toutefois, à bien gérer le collationnement, sinon tu auras
des problèmes avec les caractères accentués.
Voir [http://dev.mysql.com/doc/refman/5.0...aults.html]



Ne pas oublier non plus qu'il y a des conversions automatisées et donc
que les résultats sont parfois étranges...


Denis
Olivier Masson
Le #24098151
Le 21/12/2011 19:52, Pascale a écrit :

Merci pour ton aide. Il m'a fallu un petit moment pour comprendre que la
plupart des moteurs de recherche tout faits ne convenaient pas dans mon
cas, car il ne s'agit pas d'indexer des pages, puisque ces pages sont
dynamiques, elles « n'existent » pas, ce que je cherche est entièrement
dans la base de données.




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 ?

Sortir les résultats par ordre décroissant de pertinence ne va pas être
très simple me semble-t-il...




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.
Bref, si tu veux faire ça sur la-grille-verte, je pense qu'il faut bien
bossé avant.
C'est aussi le gros problème des requêtes SQL : on trouve des tonnes
d'exemples simples et la mise en place des requêtes classiques est
facile, mais c'est souvent très très mal optimisé.
Publicité
Suivre les réponses
Poster une réponse
Anonyme