SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 325 visiteurs en ce moment

Accueil > Navigation > Recherche > Indexer > Indexer : La boucle SPHINX

Indexer : La boucle SPHINX

29 juin 2015 – par cam.lafit, Fil, Matthieu Marcillaud, RastaPopoulos

2 votes

Attention, cette page de documentation est incomplète... Vous devrez donc découvrir et expérimenter par vous-même. Des liens à la fin permettent d’accéder à d’autres documentations.
Soyez sympa, pensez à revenir compléter cette page ;-)

Attention, cette contribution est EN CHANTIER : elle n’est peut-être pas fonctionnelle.

Avant de commencer

Pour comprendre l’intérêt du plugin, nous invitions à lire l’article suivant Indexer : Introduction.
La configuration et l’installation du plugin sont expliquées dans l’article suivant : Indexer : Installation et Configuration
L’usage de la recherche une fois configuré et installé :
Indexer : Rechercher

Des filtres spécifiques à des cas courants de comparaisons sont pré-programmés, ce qui évite de devoir connaître et écrire soi-même le code des tests.

Filtre pour un champ n’ayant qu’une valeur (mono-valué)

{filtermono test, champ, valeur(s)[, comparaison]}

Le test en premier permet de passer n’importe quelle valeur fixe ou dynamique (avec filtre ou pas) qui permettra de dire si on va ajouter le filtre ou pas. Le cas courant est de mettre la valeur d’un paramètre de l’URL, et s’il est présent et rempli, on ajoute le filtre.

La comparaison est optionnelle, et vaut « = » par défaut.

Le champ de valeur peut être une liste de plusieurs valeurs, et dans ce cas le test sera un « OU » sur chacune des comparaisons !

Exemples

  1. // Les documents publiés par défaut, sinon ceux du statut demandé
  2. {filtermono #ENV{statut,publie}, properties.statut, #ENV{statut,publie}}
  3. // Les documents de 2014 ou 2013
  4. {filtermono #ENV{annee}, year(date), #LISTE{2014,2013}}
  5. // Les documents ayant au moins #ENV{favs} partages
  6. {filtermono #ENV{favs}, length(properties.share), #ENV{favs}, '>='}

Télécharger

Filtre pour un champ JSON ayant plusieurs valeurs (multi-valué)

{filtermultijson test, champ, valeur(s)}

Mêmes principes que pour le critère précédent sauf que le critère cherche si les valeurs font partie du tableau « champ » (qui doit donc être une liste de plusieurs valeurs).

Si on donne plusieurs valeurs, le critère fera un « ET » entre les tests. Si l’une de ces valeurs est elle-même un tableau, le critère fera un « OU » (avec la commande Sphinx IN).

-  Si les valeurs sont #LISTE{mot1, mot2, mot3} : ça cherchera les documents qui ont mot1 ET mot2 ET mot3.
-  Si les valeurs sont #LISTE{mot1, #LISTE{mot2, mot3}} : ça cherchera les documents qui ont mot1 ET (mot2 OU mot3).

Exemples

  1. // Un auteur précis parmi ceux du document
  2. {filtermultijson #ENV{auteur}, properties.authors, #ENV{auteur}}
  3. // Les documents ayant tous les tags demandés, par ex si tags[]=truc&tags[]=bidule
  4. {filtermultijson #ENV{tags}, properties.tags, #ENV{tags}}

Télécharger

Filtre de distance

{filterdistance test, point1, point2, distance[, comparaison[, nom du champ]]}

Ce critère sélectionne uniquement les réponses qui font que la distance entre le point 1 et le point 2 correspond à la comparaison demandée avec la distance passée en paramètre.

La comparaison est optionnelle est vaut "<=' par défaut.
Le nom de la distance calculée est optionnelle et vaudra par défaut 'distance_0' pour la première distance demandée, puis 'distance_1', etc.

Ce paramètre permet de maîtriser le nom afin de pouvoir plus facilement
demander un tri par le nom voulu, et récupérer la valeur avec une balise.

Exemple

  1. // Tous les documents qui sont à moins de 5km de Bordeaux, avec comme nom #DISTANCE
  2. #SET{bordeaux, #ARRAY{lat, 44.83717, lon, -0.57403}}
  3. #SET{point_document, #ARRAY{lat, properties.geo.lat, lon, properties.geo.lon}}
  4. {filterdistance , testok, #GET{bordeaux}, #GET{point_document}, 5000, '<=', distance}

Télécharger

Options pour les requêtes

{option nom, valeur}

Exemple

  1. // Modifier la pondération des champs lors de la recherche libre
  2. {option field_weights, "(title=10, content=5)"}

Télécharger

Un exemple de boucle

 Les criteres de boucle

  • index
  • recherche
  • filter
  • facet
  • pagination

Les balises

  • #SPHINX_META
  • #SPHINX_MESSAGE
  • #SPHINX_QUERY
  • #SPHINX_FACETS
  • #SNIPPET
  • #SUMMARY
  • #PROPERTIES
  • #DATE

Dernière modification de cette page le 2 mars 2016

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là