Moteur de recherche - tutorial

Spip est fourni avec une option activable qui est le moteur de recherche. Source de beaucoup d’incompréhension et de questions, cet outil est pourtant très utile et très bien pensé. Revisitons-le.

Nota Spip-Contrib : le moteur de recherche à évolué depuis la date de rédaction de cet article, cependant il peut donner des pistes

SPIP : comprenez la recherche, aidez la recherche !

L’atout principal du moteur de recherche de spip, c’est qu’il fouille les données et non les squelettes. En ce sens, la recherche ne porte que sur le contenu de votre site et n’est pas perturbé par le contenant comme peut l’être un moteur externe.

Le moteur de recherche de spip est déjà très documenté et c’est donc une compilation des articles déjà faits ailleurs que je vous propose de trouver ici.

La documentation officielle du moteur de recherche de spip

-  Le moteur de recherche, où l’on lit les modalités de l’indexation du moteur avec les pages clefs suivantes.

  • ecrire/inc_index.php3 où sont définies les valeurs d’indexation en point des champs des documents (article, breve, forum etc.)
  • ecrire/data/spip.log qui montre les données de l’indexation
  • ecrire/admin_index.php3 qui permet de visualiser ce qui est indexé et de le « forcer » par lot de 20. (le forcer ? vraiment ?)
    Les modalités de la qualité de cette recherche : rapide, booléenne avec un OU logique privilégiant les résultats qui ont les deux mots associés par rapport aux autres.

-  Comment fonctionne le moteur de recherche de spip. C’est une faq technique où sont indiqués les pondérations par défaut, la taille minimum du mot recherché (quatre lettres mais en fait trois.) et les modalités de calcul des points car c’est une recherche par point et non avec des ET/OU.

-  Les boucles de recherche, où l’on apprend comment construire sa page de résultats pour afficher les scores sur les brèves, les articles, les rubriques, les sites web référencés etc. Pour un exemple concret il faut ouvrir dans votre éditeur de texte le squelette fournit avec spip : recherche-dist.html

Les fonctionnalités ajoutés du moteur de recherche de spip

-  Aidez la recherche : Il est possible d’affiner la recherche en utilisant des mots clefs rattachés aux articles puis en ajoutant dans la boucle des résultats quelque chose comme : {id_mot==^[\w38\w1]$} pour obtenir une recherche où les mots clefs 1 et 38 soient présents absolument. Cela nécessite de bien renseigner ses articles mais cela permet également de pallier au manque de l’opérateur « ET » sur ce moteur. source

-  Faites le parler : Tenir la liste des requêtes faites à votre moteur de recherche vous permet ensuite d’essayer d’améliorer la pertinence par le choix de mots clefs sur des articles que vous aurez sélectionnés. Vous pouvez ensuite conserver ces mots ou vous les faire envoyer par mail ou tenir des statistiques pour plus tard

-  Du vrai, du beau, le meilleur du moteur ! : Au final, c’est bien souvent l’aspect des résultats qui donnera l’impression qu’un moteur de recherche est puissant ou non. Deux contributions vous permettent d’améliorer la présentation finale : Super moteur de recherche et Présenter les résultats de recherche comme un « vrai » moteur. Vous avez un forum en spip et avez besoin d’en fouiller les archives ? Utilisez ce qui a déjà été fait par l’équipe de spip-contrib, limiter le résultat à une langue ? C’est possible. A spip, rien d’impossible. ;-)

-  La cerise sur le moteur de recherche : non content d’avoir désormais le plus beau, le meilleur, le plus efficace des moteurs vous pouvez désormais colorier les résultats ou corriger les derniers soucis comme l’angoisse de la page blanche ou l’apparition d’un bouton « ok » d’une manière ou d’une autre.

Voilà, j’espère que désormais cet article vous aidera à avoir une vue plus synthétique du moteur de recherche de spip et vous permettra de résoudre vos problèmes.

Aucun des articles cités ici n’est réalisé par mes soins.

Je me suis contenté de piller le contenu des excellents sites sur spip que sont la doc officielle, spip-contrib, spipage, SpipOjapanim et...un grand merci à Google ;-)

Discussion

6 discussions

  • Jmtconseils

    Bonjour,
    Je pensais que le moteur de recherche de SPIP était insensible à la casse.
    Voici ce que j’obtiens sur un site avec une recherche sur « Paris » et en mettant « paris »
    paris : 5 résultats
    https://www.syndicat-sophrologues-professionnels.fr/spip.php?page=recherchesophrologue&recherche=paris
    Paris : 33 résultats
    https://www.syndicat-sophrologues-professionnels.fr/spip.php?page=recherchesophrologue&recherche=Paris
    D’où cela viendrait ?
    Spip 3.2.4 avec champs extras (la recherche est sur un champ extra d’auteur)
    Pour info cela ne vient pas de la manière dont est écrit Paris en base de données.

    Merci pour l’aide

    Répondre à ce message

  • 3

    Bonjour,
    je decouvre Spip depuis quelques jours et je me demande si on a deux bases reliées à Spip ; comment peut-on demander au moteur de recherche d’effectuer sa recherche uniquement sur une base precise ?

    Merci d’avance

    • le moteur de recherche recherche en fonction des boucles utilisés dans ton squelettes de ton résultat.

      si ton squelette de résultat n’a une boucle avec le critère recherche que sur une base, alors le moteur de recherche ne cherche que sur une base. Donc par défaut, le moteur de recherche ne recherche que sur une base.

      Voir ici sur le moteur de recherche http://www.spip.net/fr_article903.html

      et sur le multi base en SPIP http://programmer.spip.org/-Acceder-a-plusieurs-bases-de-

    • Salut Maîeul,

      merci pour ton explication je comprend un peu mieux là. quelle serait la syntaxe pour lui preciser une autre base ? car j’ai ma base bibli de PMB que j’ai relier à Spip mais sur mon squellete de resultat je trouve pas la bonne syntaxe pour une recherche sur bibli.
      merci pour les liens je les epluche pour trouver une solution à mon probleme et essayer de mieux comprendre SPIP.

    • je pense qu’avec ca tu a tout pour faire.

      si tu a compris sur programmer comment accéder à une base externe, alors tu est bon. Il suffit juste de rajouter le critère recherche sur une boucle sur base externe. Après, il faut bien sûr que tu ait compris le principe des boucles.

      Hésite pas à reposter si jamais tu bloque

    Répondre à ce message

  • 2

    Bonjour,

    J’ai installé le moteur de recherche sur un site
    mais je souhaite empécher la recherche dans certaines rubriques,
    est-ce possible ?

    D’avance Merci !
    Sophie

    • Bonjour,

      j’ai réussi à faire cela dans la page de résultat ou par exemple dans la boucle de résultat pour les articles j’ai ajouté :
      id_rubrique !==^(1|3|4|5|6)$

      les chiffres étant les numéros de rubriques bien sur.

    • Bonjour,

      j’ai réussi à faire cela dans la page de résultat ou par exemple dans la boucle de résultat pour les articles j’ai ajouté :
      id_rubrique !==^(1|3|4|5|6)$ (entre accolades bien sur)

      les chiffres étant les numéros de rubriques bien sur.

    Répondre à ce message

  • Christophe LHARDY

    Nous avons un site qui contient environ 2000 articles, aujourd’hui, une requete avec le moteur de recherche renvoie en moyenne 50 réponses.

    Est ce qu’il est possible d’ajouter un critère pour affiner la recherche, comme par exemple limiter la recherche en sélectionnant une rubrique ou sous rubrique ?
    J’ai cherché comment réaliser cela mais à part en écrivant directement des requetes SQL, je ne vois pas commet y parvenir, quelqu’un aurait il déjà réfléchi à la question ?

    Répondre à ce message

  • 1

    Merci pour cette compilation, mais il semble que pas mal de liens présents ici ne fonctionnent plus... Dommage ;)
    Sans rancune !

    • Ben oui...ils fonctionnaient lors de la rédaction mais plus lors de la publication : essentiellement ceux de japanim qui avait quelques contributions (corbeille, sauvegarde automatique etc.) très intéressantes. Dommage.

    Répondre à ce message

  • Il n’est pas nécessaire de modifier le code SPIP pour obtenir la liste des requêtes faites au moteur de recherche SPIP. SPIP enregistre déjà cette information (pour peu que l’option de comptage des referers est activée dans SPIP)

    En effet, la page « Evolution des statistiques » de SPIP donne la liste des mots clefs utilisés par les différents moteurs de recherche inclus ceux du moteur de recherche interne de SPIP.

    Par exemple, pour mon site marieficelle.be, SPIP donne pour les recherches via le moteur SPIP la liste suivante :

    82 visites : www.marieficelle.be (11)
    « mantaux » (13)
    « armoires » (7)
    « lanternes » (6)
    « jeux » (5)
    « enfants » (5)
    « marge » (4)
    « parler » (4)
    .....

    Par défaut, SPIP affiche les 100 premiers referers. Pour en voir plus il suffit de clicker sur les « + + + » en bas de la liste ou simplement ajouter l’argument limit :
    http://www.marieficelle.be/ecrire/statistiques_visites.php3?limit=10000

    En fait SPIP garde les informations sur (tous) les referers pour les 30 derniers jours dans la table spip_referers.

    Il est également possible de faire une requête directement sur cette table pour obtenir la liste des mots clefs et la date de la recherche en utilisant la requête suivante :

    SELECT date, 
    REPLACE (mid( referer, 53, 
    IF ( locate('&', referer ), locate(  '&', referer )-53, length( referer ))), '+', ' ' ) mots
    FROM  <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9yZWZlcmVyc19hcnRpY2xlczwvY29kZT4="></span> 
    WHERE  <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cmVmZXJlcjwvY29kZT4="></span> 
    LIKE  'http://www.marieficelle.be/%'
    ORDER  BY mots
    LIMIT 0 ,5000

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom