- 20 Jun 2023
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
Recherche SOLR
- Updated on 20 Jun 2023
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
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)