Le stockage et le classement d'informations ne servent à rien s'il n'y a pas pas la possibilité d'accéder directement à l'information recherchée. chora permet la recherche dans les contenus —et les fichiers attachés, en s'appuyant (optionnellement) sur des services externes.
Dans le cas d'une installation personnelle, d'un site privé ou ouvert à une équipe limitée, ou bien s'il n'est pas utile de chercher dans les fichiers attachés, un formulaire de recherche dans la seule base de données relationnelle de l'application est proposé.
Cependant, si votre site est ouvert à de nombreux contributeurs, ou lorsque vos archives atteignent une taille respectable, il est utile de mettre à l'échelle les outils de recherche disponibles. Cela est particulièrement vrai pour la gestion de documents ou de données techniques, dont la quantité et la taille présentent de réels défis. Dans ce cas, la recherche avec Elasticsearch peut être activée (voir ci-après).
Des composants de filtrage ou recherche immédiate en Javascript sont présents dans l'interface de chora : dans les tableaux de données, y compris ceux de l'interface de gestion (créés avec la bibliothèque CRUD). Il est ainsi possible de filtrer les enregistrements d'une table, ou d'une ou plusieurs colonnes d'une table et d'exporter le résultat par un simple clic. Il est également possible de filtrer les fichiers attachés à un contenu / une collection.
Pour fournir un service de recherche performant, chora peut s'appuyer sur une base de données non-relationnelle orientée recherche de documents : Elasticsearch (cet outil populaire est lui-même basé sur Lucène, de la Fondation Apache).
Dans ce cas, les contenus —et les fichiers attachés— doivent être indexés avant d'apparaître comme résultats possibles d'une recherche (et réindexés à chaque changement).
L'indexation peut être déclenchée sur tout le contenu de l'application, sur tous les contenus d'une collection, sur tous les fichiers attachés d'une collection, sur un contenu particulier, sur tous les fichiers attachés d'un contenu particulier ou sur un fichier attaché particulier. Pour mettre à jour l'index en cas de changement, il suffit de réindexer la partie concernée par les changements.
Pour lancer une indexation, cliquez sur les boutons Indexer présents dans l'interface de gestion des collections ou des contenus (à l'onglet Attachements pour les fichiers attachés) : cette opération requiert des droits de superutilisateur.
Pour programmer une ou plusieurs tâches d'indexation, appelez la ou les fonction(s) souhaitée(s) dans une tâche cron.
/applicatin/collections/idxaes/ : indexation de toute la base (contenus et fichiers attachés)
/application/collections/idxes/1 : indexation de tous les contenus de la collection #1
/application/collections/idxafes/1 : indexation de tous les fichiers attachés de la collection #1
/application/collections/idxfes/1/2/11/3/BIN : indexation minimale du fichier binaire (BIN) #3 attaché au contenu (11) #2 de la collection #1
/application/collections/idxfes/1/2/11/3/PDF : pour les formats supportés (ici PDF), indexation du contenu du fichier #3 attaché au contenu #2 de la collection #1 (plein texte)
/application/data/idxes/1/2 : indexation du contenu #2 de la collection #1
/application/data/idxafes/1/2 : indexation de tous les fichiers attachés au contenu #2 de la collection #1
/application/data/idxfes/1/2/11/3/BIN : comme précédemment, indexation minimale du fichier binaire (BIN) #3 attaché au contenu (11) #2 de la collection #1
Lorsque la recherche avec Elasticsearch est activée, chora peut s'appuyer sur divers outils externes fournissant une API (tels que notre solution Oonai) afin de fournir des services intelligents comme la traduction de texte, la conversion d'unités ou encore le calcul directement à partir du formulaire de recherche.
Lorsqu'ils sont disponibles sur le serveur hôte, ces services sont accessibles à l'aide d'un préfixe spécial constitué d'un identifiant de service sur deux lettres suivies de : (le caractère : sert également de séparateur pour les paramètres).
Voici la syntaxe des services supportés :
Date et heure actuelles : date ou time ou today
Calcul : co:[expression mathématique] (ex. : co:(2+3)/pi*44.27)
Conversion de devises : cu:[devise source]:[devise cible]:[montant] (ex. : cu:EUR:JPY:1)
Les devises doivent être exprimées à l'aide de leur code ISO-4217 comprenant deux lettres pour le pays, suivies d'une lettre pour la devise en capitales. (*) nécessite oonai et une connexion Internet
Conversion d'unités de mesure : cn:[unité source]:[unité cible]:[quantité] (ex. : cn:g:kg:2378)
Les unités actuellement supportées sont celles de masse (mg - g - kg - lb - oz et st), de distance ( nm - mum - mm - cm - m - km et in - ft - yd - mi), de stockage informatique (B - KB - MB - GB - TB et b - Kb - Mb - Gb - Tb) et de temps (h - min - s - ms).
Coordonnées géographiques d'un lieu : lo:[lieu recherché] (ex: lo:Paris ou lo:Rue de Provence, Paris) (*) nécessite oonai et une connexion Internet
Explication de termes : ex:[expression recherchée] (ex: ex:positivisme) (*) nécessite oonai et une connexion Internet
Obtenir une citation : qu:[mots du sujet ou auteur de la citation] (ex: qu:Franz Kafka ou qu:*) (*) nécessite oonai et une connexion Internet
Les citations proviennent de Wikiquote dans sa version pour mobiles. Veuillez noter que la citation du jour est souvent orientée sur la plan politique à cause de l'action de groupes de pression.
Simulation de lancer de dés : ra:[notation des dés à lancer] (ex. : ra:2d6+3 ou ra:1d100) (*) nécessite oonai
Traduction : tr:[langue cible]:[expression à traduire] (ex. : tr:ja:Le printemps fleuri) (*) nécessite oonai et une connexion Internet
Enfin, il est possible d'effectuer des recherches externes grâce à l'API Wikidata et/ou une instance de l'araignée et du moteur de recherche YaCy. Comme tous les services supplémentaires, la recherche externe nécessite que la recherche avec Elasticsearch soit activée.
Ce document a été publié le 2019-01-16 20:13:44. (Dernière mise à jour : 2019-07-27 09:42:23.)