Moteur de recherche intégré: questions

Bonjour,

J'aurai aimé connaitre les performances du moteur de recherche intégré à SPIP:

1/ Sur quel(s) champ(s) fonctionne-t-il: titre, surtitre, texte....?

2/ Fonctionne-t-il uniquement sur la base spip_articles ?

3/ Accepte-t-il les mots tronqués/non entiers, les opérateurs booléens ?

4/ Est-il "facile" d'utiliser un autre moteur de recherche à la place de l'existant ?

5/ Si oui: quel fichier modifier, y a-t-il des particularités de configuration ? Notamment, je ne suis pas un expert du "hash" (sans mauvais jeu de mot), et il semblerait que ça ait qqchose à voir avec le moteur de recherche.

Merci d'avance pour la réponse, de plus si quelqu'un a remplacé le moteur existant, je suis intéressé par le retour d'expérience !!!

Max

Maxime CALMEJANE wrote:

1/ Sur quel(s) champ(s) fonctionne-t-il: titre, surtitre, texte....?

Tous, avec pondération (le titre compte plus que le post-scriptum, etc)

2/ Fonctionne-t-il uniquement sur la base spip_articles ?

Non, aussi les brèves, les rubriques, les auteurs, les mots-clés.
L'utilisation de l'indexation a tendance à tripler la taille
de la base mysql (i.e. chaque table d'indexation prend en moyenne
deux fois plus de place que la table du contenu correspondant -
articles, brèves...).

3/ Accepte-t-il les mots tronqués/non entiers, les opérateurs booléens ?

Les mots tronqués, oui ("libe" trouvera "liberté" - pas l'inverse).
Les caractères accentués sont transformés en caractères non
accentués, pour éviter les problèmes de claviers et charsets.
Les mots de trois lettres ou moins sont ignorés. L'extraction
des mots est faite en une passe avec une unique expression régulière
assez crade, ce qu'il fait qu'il y a 1 ou 2% de déchets dans
la base d'indexation ; ce qui reste négligeable (de plus
personne ne cherche les déchets). C'est la seule façon de
conserver une indexation rapide en PHP (par comparaison, voir
PHPDig, qui fait une indexation propre, et est horriblement
lent, inutilisable en temps réel).

Pas d'opérateurs booléens : les scores des différents mots de
la recherche sont cumulés pour donner le score total.

4/ Est-il "facile" d'utiliser un autre moteur de recherche à la place de l'existant ?

Il suffit de désactiver le moteur intégré (ce qui est fait par défaut)
et d'en installer un autre.
Par contre, tu ne peux pas l'appeler depuis les squelettes : les pages
de résultats affichées par le moteur seront celles du moteur, non des
pages définies dans SPIP. De même, SPIP ne commandera pas automatiquement
au moteur de réindexer un document s'il a changé : il n'y a pas de
communication entre les deux.

5/ Si oui: quel fichier modifier, y a-t-il des particularités de configuration ?

Voir le manuel de ton moteur ! Tu dois indexer ton site SPIP comme
n'importe quel autre site. La seule chose est que le moteur doit
pouvoir fonctionner avec les sites dynamiques (cela veut dire en
général qu'il passe par le serveur Web au lieu d'indexer directement
les fichiers HTML).

Merci d'avance pour la réponse, de plus si quelqu'un a remplacé
le moteur existant, je suis intéressé par le retour d'expérience !!!

Le Monde Diplomatique utilise htdig à la place ; il n'y a apparemment
aucun problème.

a+

Antoine.

Réposne d'Antoine à Maxime CALMEJANE

>
> 1/ Sur quel(s) champ(s) fonctionne-t-il: titre, surtitre, texte....?

N'y a t il pas moyen de limiter son fonctionnement ( d'indexation OU de
recherche) aux mots clefs par exemple ? ou mots clefs + titre ?

Si celà est jugé suffisant pour les besoins du site, pourquoi ne pas
permettre cette limitation?
Celà ne serait il pas avantageux en terme de place et/ou de rapidité?
Y a t il une possibilité y compris si c'est manuel en modifiant un fichier ?
et celà en vaut il la peine?

> 4/ Est-il "facile" d'utiliser un autre moteur de recherche à la place de

l'existant ?

Le Monde Diplomatique utilise htdig à la place ; il n'y a apparemment
aucun problème.

J'ai été voir HtDig par curiosité, pfuttt!!! c'est pas demain que je
l'installe.....

Bon j'ai finalement testé sur uzine et c'est très rapide, je ne comprend pas
pourquoi vous écrivez qu'il pourrait avantageusement être remplacé par un
VRAI moteur ?
Finalement je le trouve très efficace votre faux vrai moteur!

Maurice

Hello,

Tout d'abord, suite aux discussions sur le moteur, j'ai ajouté
un article à la doc, que je ne crois pas avoir annoncé ici :

http://www.uzine.net/article996.html

Et également un autre sur la rapidité du site public :

http://www.uzine.net/article997.html

Celà ne serait il pas avantageux en terme de place et/ou de rapidité?

Oui !

Y a t il une possibilité y compris si c'est manuel en modifiant un fichier ?
et celà en vaut il la peine?

A condition d'avoir quelques rudiments de PHP, oui, c'est possible.
Ca peut valoir la peine principalement si on élimine de l'indexation
les "gros" champs c'est-à-dire : corps de texte, chapo, descriptif,
post-scriptum ; alors la taille de la base sera nettement réduite,
et l'indexation plus rapide. On peut également modifier les poids
associés à chaque champ.

Pour cela, il faut aller dans le fichier ecrire/inc_index.php3,
à l'intérieur de la fonction indexer_objet(), à partir de la ligne 64.
Chaque type d'objet à indexer (article, etc.) fait l'objet d'un 'case'
distinct. Vous noterez que pour les articles, il y a trois morceaux
de code distincts : en effet, en plus d'indexer l'article lui-même,
on utilise également les mots-clés et les auteurs associés à l'article.
Pour changer le poids d'un champ, il faut modifier le deuxième paramètre
de l'appel à la fonction indexer_chaine(). Pour ne pas indexer un
champ, il faut commenter la ligne correspondante (préférable), ou la
supprimer.

Cela peut être intéressant de proposer ce réglage de façon conviviale
dans une prochaine version. A voir....

a+

Antoine.