SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 366 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

  • Acces Restreint 3.0

    11 décembre 2008 – 787 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Partageur

    29 janvier 2011 – 46 commentaires

    Permet de recopier facilement des articles d’un site SPIP partageur à l’autre. Ce plugin est encore en version beta. Les retours et critiques sont les bienvenus ... Présentation Ce plugin est né d’un besoin de partager des articles entre sites (...)

  • Tutoriel : créer une carte interactive avec GIS4

    19 octobre 2013 – 26 commentaires

    Utilisation de quelques fonctions javascript pour créer des interactions avec une carte GIS. L’objet de ce tutoriel est de produire une carte interactive comme celle-ci Effacer tous les points d’une carte d’une carte La fonction javascript (...)

  • Agenda 2.0

    3 novembre 2008 – 1067 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • Menus

    18 août 2009 – 957 commentaires

    Créez enfin vos menus facilement !