Recherche SOLR
  • 20 Jun 2023
  • 3 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Recherche SOLR

  • Dark
    Light
  • PDF

The content is currently unavailable in English. You are viewing the default French version.
Article summary

Important
L'API de recherche SOLR sera désactivée par défaut avec la sortie de la version 12, mais pourra être réactivée via une configuration. À noter que réactiver l'API de recherche SOLR aura des impacts négatifs majeurs sur la performance du serveur.

L'équipe Constellio est en cours de développement d'une nouvelle API de recherche via l'API REST V2 pour une sortie cet automne. La nouvelle API maintiendra les fonctionnalités jugées les plus importantes de l'API de recherche SOLR, mais en simplifiant les appels et les formats de retour. L'API de recherche SOLR restera disponible jusqu'au 30 juin 2025, après quoi Constellio se réserve le droit de la retirer complètement du produit. Tout nouveau développement sera fait dans la nouvelle API de recherche.

Les paramètres du service de recherche de Constellio

Basé sur le service d’Apache Solr, le service web de recherche de Constellio permet aux développeurs d'effectuer de requêtes des recherches par programmation.
Les paramètres de la recherche sont envoyés au moteur de recherche grâce aux paramètres dans l’URL du service.
Voici l’URL du service http://<host>:<port>/constellio/select
Voici un exemple :  http://<host>/constellio/select?token=254de7d9-89d2-42f7-963&serviceKey=38fhhdf_df3493f&fq=schema_s:document*&q=québec&indent=true&rows=10&wt=json 


Paramètre : DefType (recommandé)

Indique le type de recherche. Toujours utiliser celui-ci :
defType=edismax

Le paramètre qf indiquer les champs de recherche et permet de «booster» un champ en particulier si le critère «^» est utilisé. Dans cet exemple on recherche sur le champs de recherche par défaut (content_txt_fr et on «booste» les documents qui contiennent les mots-clés recherchés dans leur titre):
qf=content_txt_fr title_t_fr^20.0


Paramètre : FL (recommandé)

Permet d’indiquer les champs à affiche.
fl=<champs1>,<champs2>
Laisser vide pour afficher tous les champs.
Attention ! En production, ne demander au serveur les champs affichés à l’utilisateur. Certains (content_*) contiennent beaucoup de données et ralentissent la recherche. Utiliser plutôt la surbrillance (paramètre hl, plus bas) pour retourner seulement l’extrait pertinent du contenu.


Paramètre : Rows (recommandé)

Nombre de résultats à retourner.
rows=15
Par défaut : 10
Il est suggéré de ne pas retourner plus d’une vingtaine de résultats. 


Paramètre : Start (recommandé)

Par défaut : 0
Permet de spécifier la position de départ dans les résultats.
Utile pour la pagination. Le champs numFound dans l’entête de la réponse permet d’obtenir le nombre total de résultats obtenus. 


Paramètre : Q (recommandé)

Afin de spécifier les termes et expressions de la recherche, on utilise le paramètre 'q' comme suit:
q=test
L'utilisation de la syntaxe de Solr permet d'utiliser d'appliquer des critères de sélection aux expressions de la recherche. On a par exemple :
Au moins un mot :
q=(pamela OR jeudi OR documentation)
Tous les mots :
q=(pamela AND jeudi AND documentation)
Expression exacte :
q="documentation remise à pamela jeudi"
On peut également utiliser quelques opérateurs pour pimenter les résultats obtenus :

  • Phrase : "table des matières"
  • «Wildcard»/frimes : Un caractère : p?mela
  • Préfixe : pam*
  • Suffixe : *mela
  • Floue : pabela~
  • Négation : -vendredi

Paramètre Q.OP

Indique l’opérateur booléen par défaut (AND | OR). Utiliser le «AND» :
q.op=AND 


Paramètre : FQ

Permet d’ajouter des filtres à la recherche.
fq=<nom du camps>:<valeur>
Exemple (pour retourner uniquement les documents) :
fq=schema_s :document*
On peut indiquer plusieurs paramètres «fq». Les filtres vont s’additionner. 


Paramètre : Sort

Ce paramètre permet de trier les résultats de la recherche par ordre de croissance/décroissance. Selon la formule suivante :
sort=<nom du champs> <ASC | DESC>
Le tri varie selon le type de champs. Utiliser les champs *_sort_s ou _da (date) de préférence. 


Paramètre : Indent

indent=<true|false>
Utile pour formater le code et le rendre plus lisible. 


Paramètre : HL

Permet de faire la surbrillance.
Activation de la surbrillance :
hl=true
Choix du / des champs pour la surbrillance. «parsedContent_t_fr» permet de faire la surbrillance sur le contenu extrait du document. Un incontournable.
hl.fl=parsedContent_t_fr
Taille de l’extrait en caractères
hl.fragsize=150
Nombre d’extraits :
hl.snippets=2 


Paramètre : SPELLCHECK

Avancé. Permet d’activer le correcteur orthographique pour la requête de l’utilisateur.
Activation :
qt=/spell&spellcheck=on
La suggestion s’active au besoin, et est proposée à la fin de la réponse. 


Paramètre : FACET

Avancé. Permet de construire des facettes sur la recherché.
Activation :
facet=true
Nombre minimal de résultat pour affiche une facette (par défaut 0)
facet.mincount=1
Choix des champs pour la facette :
*Choisir uniquement des champs de type «*_s».
facet.field=<champs1>
facet.field=<champs2>
Réponse
Champs importants
Identifiant : id
Type de contenu : schema_s
Date de modification : modifiedOn_dt
Collection : collection_s
Titre : title_*
Contenu : content_*
Version : version _s 


Types de champs

Voici les principaux types de champs disponibles :
*_s : String exacte (sensible à la case et accents)
*_ss : String, mais avec valeurs multiples
*da : date
*_t_fr : Champs analysé en français. Non sensible à la case et aux accents, mais ignore certains caractères (séparateurs, suffixes pour le pluriel, etc.)
*_sort_s : Parfaits pour le tri 


Voir aussi

Documentation officielle de Solr à propos des requêtes (en anglais)




Was this article helpful?

What's Next
Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.