Structure de la base de données (créée au redémarrage d'alfresco) edu-sharing.server.conf:
repository.database.scripts.custom:["factualterm.sql.properties"]
Import initial :
-
télécharger le fichier authorities-sachbegriff_dnbmarc_20201013.mrc.xml (https://data.dnb.de/GND/)
-
importer via l'interface admin edu-sharing dans la section Jobs (Tâches) : Job ImportFactualTermMarc21
Définir le widget de métadonnées (mds_override.xml) :
<widget>
<id>ccm:classification_keyword</id>
<type>multivalueFixedBadges</type>
<caption>Mots-clés fixes</caption>
<placeholder>Termes importants pour le matériel...</placeholder>
<suggestionSource>Sql</suggestionSource>
<suggestionQuery>select CASE WHEN factual_term_synonyms IS NULL THEN factual_term_value WHEN array_length(factual_term_synonyms,1) = 1 THEN format('%s (%s)',factual_term_value, factual_term_synonyms[1]) ELSE format('%s (%s, %s)',factual_term_value, factual_term_synonyms[1], factual_term_synonyms[2]) END from edu_factual_term where (lower(factual_term_value) like ? OR lower(factual_term_synonyms[0]) like ? OR lower(factual_term_synonyms[1]) like ?) order by char_length(factual_term_value) limit 100</suggestionQuery>
<textEscapingPolicy>all</textEscapingPolicy>
</widget>
Mise à jour régulière des mots-clés si nécessaire (edu-sharing.server.conf) :
jobs.entries += {
name: "Import Factual Term Marc 21",
class: "org.edu_sharing.repository.server.jobs.quartz.ImporterJob",
trigger: "Cron[0 0 22 * * ?]",
params: {
"oai_base_url": "https://services.dnb.de/oai/repository",
"oai_metadata_prefix": "MARC21-xml",
"sets": "authorities:sachbegriff",
"record_handler": "org.edu_sharing.repository.server.importer.RecordHandlerKeywordsDNBMarc",
"persistent_handler": "org.edu_sharing.repository.server.importer.PersistenHandlerKeywordsDNBMarc",
"importer_class":"org.edu_sharing.repository.server.importer.OAIPMHLOMImporter",
"period_in_days":"14",
"username":"admin"
}
}
Migration de l'ancienne version des mots-clés fixes vers key/value
-
lancer le job suivant dans l'interface admin :
org.edu_sharing.repository.server.jobs.quartz.MigrateFactualTermsToKeyValue { "test": "false" } -
Mettre à jour la base de données avec les données dnb
org.edu_sharing.repository.server.jobs.quartz.ImportFactualTermMarc21 { "fileUri": "file://localhost/authorities-sachbegriff_dnbmarc_20201013.mrc.xml" } -
Mettre à jour les mots-clés des nœuds avec les nouvelles valeurs de la base de
org.edu_sharing.repository.server.importer.FactualTermDisplayUpdaterJob {
}