2020

4.13.0

Goobi viewer Core

Die Sektion <content /> ist aus der Konfigurationsdatei entfernt worden. Der Schalter mit dem die Anzeige des Widgets für den Download von Dateien gesteuert werden kann ist in die Sidebar-Sektion umgezogen. Bei einem Update ist zu prüfen ob in der lokalen config_viewer.xml der folgende Eintrag existiert um diesen bei Bedarf umzuziehen:

<!-- ALT -->
<content>
    <originalContentDownload>false</originalContentDownload>
</content>

<!-- NEU -->
<sidebar>
    <sidebarWidgetDownloads visible="false" />
</sidebar>

4.12.0

Goobi viewer Core

Wird der TaskManager für die Generierung von PDF-Dateien verwendet muss ein UNIQUE Constraint auf die identifierSpalte in der download_jobs Tabelle gesetzt werden. Dafür müssen gegebenenfalls vorher Duplikate entfernt werden:

SELECT * FROM download_jobs WHERE identifier IN(SELECT identifier FROM download_jobs GROUP BY identifier HAVING COUNT(identifier) > 1);

/*
DELETE FROM download_jobs WHERE identifier=<one row from the duplicates>;
*/

ALTER TABLE download_jobs ADD UNIQUE(identifier);

Goobi viewer Indexer

Der in der solr_indexerconfig.xml definierte Ordner für die gespeicherten Annotationen muss überprüft und gegebenenfalls angepasst werden. Der Goobi viewer Core erwartet die Dateien im Ordner annotations, es ist aber möglich, dass im Goobi viewer Indexer der Ordner annotation konfiguriert ist, also ohne s. Wenn das der Fall ist muss das in der Konfigurationsdatei wie auch im im Dateisystem korrigiert werden.

  • Prüfen ob ein falscher Ordner konfiguriert ist. Dafür das folgende Kommando ausführen. Wenn es eine Ausgabe gibt, dann muss den folgenden Punkten fortgefahren werden. Ist die Ausgabe leer ist hier Schluss.

grep "<annotationFolder>annotation</annotationFolder>" /opt/digiverso/indexer/solr_indexerconfig.xml
  • Wenn das obige Kommando eine Ausgabe gab, dann kann die Konfigurationsdatei mit den folgenden Befehlen korrigiert werden:

mkdir /root/BACKUP/$(date -I)
cp /opt/digiverso/indexer/solr_indexerconfig.xml /root/BACKUP/$(date -I)
sed 's|<annotationFolder>annotation</annotationFolder>|<annotationFolder>annotations</annotationFolder>|g' -i /opt/digiverso/indexer/solr_indexerconfig.xml
systemctl restart solrIndexer
  • Wenn eine Korrektur notwendig ist, dann müssen nun die Ordner im Dateisystem angepasst werden:

# Keine Datarepositories:
mv /opt/digiverso/viewer/annotation/ /opt/digiverso/viewer/annotations/

# Mit Datarepositories
for i in $(ls /opt/digiverso/viewer/data); do mv /opt/digiverso/viewer/data/${i}/annotation/ /opt/digiverso/viewer/data/${i}/annotations/; done

4.11.0

Apache

Der gleichzeitige Zugriff auf Werke wird über WebSockets gesteuert. Dafür muss dessen Unterstützung in dem Apache Webserver in die Konfiguration mit aufgenommen werden:

## Enable WebSockets to check concurrent access
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /?(.*) ws://localhost:8080/$1 [P,L]

Sollte der Tomcat nicht auf 8080 lauschen bitte den Port entsprechend anpassen. Es muss aber immer auf den HTTP Connector, nicht auf den AJP Connector weitergeleitet werden.

Anschließend das benötigte Modul aktivieren und den Dienst neu starten:

a2enmod proxy_wstunnel
systemctl restart apache2

Goobi viewer Core

Mit dem Update des Themes wird der Titel der Installation aus der Konfigurationsdatei gelesen. Dieser muss in der lokalen Konfigurationsdatei gesetzt werden:

config_viewer.xml
<viewer>
    <name>Goobi viewer</name>
</viewer>

Goobi viewer Indexer

Um die neue Möglichkeit für die Einschränkung des gleichzeitigen Zugriffs nutzen zu können muss das Feld konfiguriert werden:

solr_indexerconfig.xml
<ACCESSCONDITION_CONCURRENTUSE>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:extension/intranda:accessConditionConcurrentUse</xpath>
            <addToDefault>false</addToDefault>
            <addSortField>false</addSortField>
            <addUntokenizedVersion>false</addUntokenizedVersion>
        </item>
    </list>
</ACCESSCONDITION_CONCURRENTUSE>

Goobi viewer Connector

Die URL zur REST API des Goobi viewers sowie für den Volltext muss an die neuen REST Endpoints angepasst werden:

config_oai.xml
<!-- Alt -->
<restApiUrl>http://localhost:8080/rest/</restApiUrl>
<fulltextUrl>http://viewer.example.org/rest/content/fulltext/{pi}/{fileName}/</fulltextUrl>


<!-- Neu -->
<restApiUrl>http://localhost:8080/api/v1/</restApiUrl>
<fulltextUrl>https://viewer.example.org/api/v1/records/{pi}/files/plaintext/{fileName}</fulltextUrl> 

4.10.0

Solr

Um das Logging von Solr zu reduzieren muss das Loglevel angepasst und der Dienst neu gestartet werden:

patch /etc/default/solr.in.sh << "EOF"
@@ -113,7 +113,7 @@
 
 # Changes the logging level. Valid values: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF. Default is INFO
 # This is an alternative to changing the rootLogger in log4j2.xml
-#SOLR_LOG_LEVEL=INFO
+SOLR_LOG_LEVEL=ERROR
 
 # Location where Solr should write logs to. Absolute or relative to solr start dir
 #SOLR_LOGS_DIR=logs
EOF
systemctl restart solr

Goobi viewer Indexer

Für die neue Möglichkeit den PDF-Download prozentual pro Nutzersession einzuschränken ist ein Update des Schemas und des Goobi viewer Indexers notwendig:

mkdir /root/BACKUP/$(date -I)
cp /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml /root/BACKUP/$(date -I)
wget -O /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/schema.xml
chown solr. /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml
cd /opt/digiverso/solr/solr/
sudo -u solr bin/solr zk upconfig -n goobiviewer -d server/solr/configsets/goobiviewer/
curl "http://localhost:8983/solr/admin/collections?action=RELOAD&name=collection1&wt=xml"

systemctl stop solrindexer
mv /opt/digiverso/indexer/solrIndexer.jar /root/BACKUP/$(date -I)
wget -O /opt/digiverso/indexer/solrIndexer.jar https://github.com/intranda/goobi-viewer-indexer/releases/download/v4.10.1/solrIndexer.jar
systemctl start solrindexer

Außerdem muss das Feld konfiguriert werden:

solr_indexerconfig.xml
<ACCESSCONDITION_PDF_PERCENTAGE_QUOTA>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:extension/intranda:accessConditionPdfPercentageQuota</xpath>
            <addToDefault>false</addToDefault>
            <addSortField>false</addSortField>
            <addUntokenizedVersion>false</addUntokenizedVersion>
        </item>
    </list>
</ACCESSCONDITION_PDF_PERCENTAGE_QUOTA>

4.9.0

Solr

Bei der Migration zu Solr 8 wurde vergessen die JTS Bibliothek für die Suche in Koordinatenbereichen zu übernehmen. Das muss nachgeholt werden. Dafür sind die folgenden Schritte notwendig.

Herunterladen der notwendigen Bibliothek, anpassen der Rechte und Neustart damit die Library bekannt ist:

systemctl stop solrindexer
wget -O /opt/digiverso/solr/solr/server/solr-webapp/webapp/WEB-INF/lib/jts-core-1.17.0.jar https://github.com/locationtech/jts/releases/download/1.17.0/jts-core-1.17.0.jar
chown solr. /opt/digiverso/solr/solr/server/solr-webapp/webapp/WEB-INF/lib/jts-core-1.17.0.jar
systemctl restart solr
systemctl start solrindexer

Außerdem muss das Solr Schema aktualisiert werden:

mkdir /root/BACKUP/$(date -I)
cp /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml /root/BACKUP/$(date -I)
wget -O /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/schema.xml
chown solr. /opt/digiverso/solr/solr/server/solr/configsets/goobiviewer/conf/schema.xml
cd /opt/digiverso/solr/solr/
sudo -u solr bin/solr zk upconfig -n goobiviewer -d server/solr/configsets/goobiviewer/
curl "http://localhost:8983/solr/admin/collections?action=RELOAD&name=collection1&wt=xml"

Da wir Zookeeper nur lokal benötigen, kann der Dienst auch nur auf localhost lauschen:

patch /etc/zookeeper/conf/zoo.cfg << "EOF"
@@ -15,6 +15,7 @@
 
 # the port at which the clients will connect
 clientPort=2181
+clientPortAddress=127.0.0.1
 
 # specify all zookeeper servers
 # The fist port is used by followers to connect to the leader
EOF
systemctl restart zookeeper

Goobi viewer Indexer

Der Goobi viewer Indexer muss aktualisiert werden, um die neusten Anpassungen für die Suche nach Geokoordinaten zu Unterstützen:

systemctl stop solrindexer
mv /opt/digiverso/indexer/solrIndexer.jar /root/BACKUP/$(date -I)
wget -O /opt/digiverso/indexer/solrIndexer.jar https://github.com/intranda/goobi-viewer-indexer/releases/download/v4.9.0/solrIndexer.jar
systemctl start solrindexer

Frühere Versionen haben manchmal fälschlicherweise Dateien mit angehängtem Iterator in den indexed_mets Ordner verschoben anstelle sie in den Originaldateienamen umzubenennen. Diese Dateien sollten mit dem folgenden Kommando entfernt werden:

find /opt/digiverso/viewer/indexed_mets -regex '.*#[0-9]+\.xml' | while read i; do test -e ${i%#*}.xml && rm $i; done

Goobi viewer Connector

Um die OAI und SRU Schnittstelle auf die aktuelle Version zu aktualisieren können die folgenden Zeilen verwendet werden:

cp /opt/digiverso/viewer/bin/M2M.war /root/BACKUP/$(date -I)
wget -O /tmp/M2M.war https://github.com/intranda/goobi-viewer-connector/releases/download/v4.9.0/M2M.war
mv /tmp/M2M.war /opt/digiverso/viewer/bin/M2M.war

Goobi viewer Core

Bei der Feldkonfiguration für das Stöbern Menü wurde das Attribut docstructFilters entfernt. Bereits länger gibt es die Möglichkeit eine filterQuery zu definieren, die das Attribut und seine Logik ersetzt haben. Bei einem Update ist zu prüfen ob in der lokalen config_viewer.xml das docstructFilters Attribut verwendet wird und die gewünschte Funktionalität gegenebenfalls als filterQuery umzuformulieren.

config_viewer.xml
<!-- ALT -->
<luceneField docstructFilters="Monograph;Volume">MD_TITLE_UNTOKENIZED</luceneField>

<!-- NEU -->
<luceneField filterQuery="+(DOCSTRCT:Monograph DOCSTRCT:Volume)">MD_TITLE_UNTOKENIZED</luceneField>

4.8.0

Mit dieser Version wird der verwendete Suchindex Apache Solr auf die Version 8 aktualisiert. Dafür muss Solr 8 komplett neu installiert und der Datenbestand anschließend durch eine besondere Neuindexierung in die neuen Installation überführt werden. Eine Migration über mehr als zwei Major Versionen wird von Solr offiziell nicht unterstützt (Hintergrund). Für die Unterstützung von Solr Streaming Expressions ist es notwendig SolrCloud zu verwenden. Die notwendigen Schritte sind im folgenden in chronologischer Reihenfolge aufgelistet:

Solr

Die Installation von Apache Solr 8 ist hier in der Updateanleitung nur in gekürzter Form. Für eine längere Variante bitte den entsprechenden Abschnitt in der Installationsanleitung lesen.

cd /tmp
wget http://archive.apache.org/dist/lucene/solr/8.5.2/solr-8.5.2.tgz
tar -xzf solr-8.5.2.tgz solr-8.5.2/bin/install_solr_service.sh --strip-components=2
mkdir -p /opt/digiverso/solr/
./install_solr_service.sh solr-8.5.2.tgz -i /opt/digiverso/solr -d /opt/digiverso/solr -u solr -s solr -p 8983 -n
cat << "EOF" >/etc/security/limits.d/solr.conf
solr hard nofile 65535
solr soft nofile 65535
solr hard nproc 65535
solr soft nproc 65535
EOF
apt install -y zookeeperd
patch /etc/default/solr.in.sh << "EOF"
@@ -28,7 +28,7 @@
 #SOLR_STOP_WAIT="180"
 
 # Increase Java Heap as needed to support your indexing / query needs
-#SOLR_HEAP="512m"
+SOLR_HEAP="2048m"
 
 # Expert: If you want finer control over memory options, specify them directly
 # Comment out SOLR_HEAP if you are using this though, that takes precedence
@@ -64,7 +64,7 @@
 # Set the ZooKeeper connection string if using an external ZooKeeper ensemble
 # e.g. host1:2181,host2:2181/chroot
 # Leave empty if not using SolrCloud
-#ZK_HOST=""
+ZK_HOST="127.0.0.1:2181"
 
 # Set the ZooKeeper client timeout (for SolrCloud mode)
 #ZK_CLIENT_TIMEOUT="15000"
EOF
chmod 755 /opt/digiverso/solr/solr/bin/solr
cd /opt/digiverso/solr/solr/server/solr/configsets/
cp -a _default/ goobiviewer
cd goobiviewer/conf/
rm managed-schema
wget https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/schema.xml
cp lang/stopwords_de.txt lang/stopwords.txt
wget https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/mapping-ISOLatin1Accent.txt
patch solrconfig.xml << "EOF"
@@ -21,6 +21,7 @@
      this file, see http://wiki.apache.org/solr/SolrConfigXml.
 -->
 <config>
+  <schemaFactory class="ClassicIndexSchemaFactory"/>
   <!-- In all configuration below, a prefix of "solr." for class names
        is an alias that causes solr to search appropriate packages,
        including org.apache.solr.(search|update|request|core|analysis)
@@ -58,6 +59,11 @@
               <lib dir="./lib" />
     -->
 
+  <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" regex=".*\.jar" />
+  <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" regex=".*\.jar" />
+  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-analysis-extras-\d.*\.jar" />
+
+
   <!-- A 'dir' option by itself adds any files found in the directory
        to the classpath, this is useful for including all jars in a
        directory.
@@ -773,7 +779,7 @@
 
   <initParams path="/update/**,/query,/select,/spell">
     <lst name="defaults">
-      <str name="df">_text_</str>
+      <str name="df">DEFAULT</str>
     </lst>
   </initParams>
 
@@ -1108,7 +1114,7 @@
   </updateProcessor>
 
   <!-- The update.autoCreateFields property can be turned to false to disable schemaless mode -->
-  <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"
+  <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}"
            processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
     <processor class="solr.LogUpdateProcessorFactory"/>
     <processor class="solr.DistributedUpdateProcessorFactory"/>
EOF
chown -R solr. *
cd /opt/digiverso/solr/solr/
sudo -u solr bin/solr zk upconfig -n goobiviewer -d server/solr/configsets/goobiviewer/

Sollte dieser Befehl unter Ubuntu Linux 20.04 einen Timeout werfen, dann muss geprüft werden Java 11 der Standard ist (update-alternatives --config java). Zookeeper ist nicht mehr mit Java 8 kompatibel.

systemctl start solr
sudo -u solr bin/solr create -c collection1 -n goobiviewer

Schlägt dieser Befehl fehl, dann muss in der /etc/default/solr.in.sh die Variable #SOLR_HOST="" einkommentiert und auf die IP-Adresse des lokalen Rechners gesetzt werden.

Nun die Apache Konfiguration anpassen, so dass Solr auf dem neuen Port angesprochen wird. Dafür den entsprechenden Apache vhost öffnen und in dem Block <Location /solr/> die ProxyPass und ProxyPassReverse Einträge auf diese neuen Werte anpassen:

/etc/apache2/sites-available/HOSTNAME.conf
ProxyPass http://localhost:8983/solr/ retry=0
ProxyPassReverse http://localhost:8983/solr/

Anschließend sicherstellen, dass auch das benötigte Modul proxy_http geladen ist und den Dienst neu starten:

a2enmod proxy_http
systemctl restart apache2

Goobi viewer Indexer

Der Datenbestand muss neu indexiert werden. Dafür muss der Goobi viewer Indexer aktualisiert werden damit er bei der Neuindexierung einige Solr Felder von der alten in die neue Installation übernimmt:

mkdir -p /root/BACKUP/$(date -I)/
systemctl stop solrindexer
mv /opt/digiverso/indexer/solrIndexer.jar /root/BACKUP/$(date -I)
wget -O /opt/digiverso/indexer/solrIndexer.jar https://github.com/intranda/goobi-viewer-indexer/releases/download/v4.8.2/solrIndexer.jar

Dieser Abschnitt ist wichtig. Da sich die Neuindexierung über einen längeren Zeitraum hinziehen kann ist es wichtig spätere Arbeiten nicht zu vergessen!

Nun die Konfigurationsdatei des Goobi viewer Indexers anpassen. Der Eintrag in <solrUrl> muss dabei auf den neuen Solr 8 und ein neuer Eintrag <oldSolrUrl> auf den bisherigen Solr 4 zeigen:

cp /opt/digiverso/indexer/solr_indexerconfig.xml /root/BACKUP/$(date -I)
sed -i "s|<solrUrl>\(.*\)</solrUrl>|<oldSolrUrl>\1</oldSolrUrl>|g" /opt/digiverso/indexer/solr_indexerconfig.xml
sed -i "s|<oldSolrUrl>|<solrUrl>http://localhost:8983/solr/collection1</solrUrl>\n<oldSolrUrl>|g" /opt/digiverso/indexer/solr_indexerconfig.xml

Anschließend erst mit einem Datensatz testen ob keine Fehler bei der Indexierung auftreten. Wenn das der Fall ist den Datenbestand neu Indexieren.

Wenn die Neuindexierung abgeschlossen ist, muss der Eintrag <oldSolrUrl /> aus der solr_indexerconfig.xml auskommentiert werden.

Damit die Versionsnummer an den Goobi viewer Core zur Anzeige im Dashboard korrekt übermittelt werden kann, müssen die folgenden beiden Einstellungen in der Konfigurationsdatei vorhanden sein. Bitte URL und Token prüfen und gegebenenfalls an die lokalen Gegebenheiten anpassen:

solr_indexerconfig.xml
<init>
    <viewerUrl>http://127.0.0.1:8080/viewer/</viewerUrl>
    <viewerAuthorizationToken>CHANGEME</viewerAuthorizationToken>
</init>

Goobi viewer Connector

Damit der Goobi viewer Connector mit Solr 8 kompatibel ist und zusätzlich seine Versionsnummer im gewünschten Format ausgeben kann, ist es notwendig den Connector zu aktualisieren:

cp /opt/digiverso/viewer/bin/M2M.war /root/BACKUP/$(date -I)
wget -O /tmp/M2M.war https://github.com/intranda/goobi-viewer-connector/releases/download/v4.8.1/M2M.war
mv /tmp/M2M.war /opt/digiverso/viewer/bin/M2M.war

Außerdem muss die URL zum Solr Suchindex angepasst werden:

config_oai.xml
<solrUrl>http://localhost:8983/solr/collection1</solrUrl>

Goobi viewer Core

In der lokalen config_viewer.xml muss die URL zu dem Solr Suchindex angepasst werden. Das betrifft vor allem den geänderten Port:

config_viewer.xml
<solr>http://localhost:8983/solr/collection1</solr>

Zur korrekten Anzeige von Beschreibungstexten muss sichergestellt werden, dass in der Datenbank auch die richtigen Message Keys hinterlegt sind. Dafür die folgenden beiden SQL Statements ausführen:

UPDATE license_types SET description = "licenseType_setRepresentativeImage_desc" WHERE name = "licenseType_setRepresentativeImage";
UPDATE license_types SET description = "licenseType_deleteOcrPage_desc" WHERE name = "licenseType_deleteOcrPage";

4.7.0

Goobi viewer Indexer

Um die Ausgabe von Fehlern beim Start des Goobi viewer Indexers auch in die Logdatei mit zu übernehmen muss die folgende Zeile in den Abschnitt [Service] in der Systemd Unit File eingefügt werden:

solrindexer.service
StandardError=file:/opt/digiverso/logs/indexer.log

Anschließend muss der Daemon neu geladen und der Dienst neu gestartet werden:

systemctl daemon-reload
systemctl restart solrindexer

Die Option wurde erst mit Systemd 236 eingeführt und steht demnach erst ab Ubuntu Linux 18.04 Systemen zur Verfügung.

4.6.0

Goobi viewer Core

Die Solr Konfiguration wurde um weiteres Mapping von diakritischen Zeichen erweitert. Zur Übernahme der Änderungen muss die Datei mapping-ISOLatin1Accent.txt aktualisiert und der Datenbestand neu indexiert werden:

mkdir -p /root/BACKUP/$(date -I)
cp /opt/digiverso/viewer/apache-solr/collection1/conf/mapping-ISOLatin1Accent.txt /root/BACKUP/$(date -I)
wget -O /tmp/mapping-ISOLatin1Accent.txt https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/mapping-ISOLatin1Accent.txt
cp /tmp/mapping-ISOLatin1Accent.txt /opt/digiverso/viewer/apache-solr/collection1/conf/

systemctl restart tomcat8

Um vom ContentServer die neuen Standardwerte für die PDF-Generierung zu verwenden muss geprüft werden, ob eine lokale config_contentServer.xml Datei vorliegt. Ist das der Fall müssen in dem Konfigurationselement <defaultPdfConfig /> die beiden Attribute imageScale="0.5" und imageCompression="50" hinzugefügt werden. Das vollständige Element sieht dann zum Beispiel so aus:

config_contentServer.xml
<defaultPdfConfig alwaysUseRenderedImage="true"
                  alwaysCompressToJPEG="true"
                  metsFileGroup="PRESENTATION"
                  metsFileUrlRemove="file:\/\/\/opt\/digiverso\/viewer\/media\/"
                  writeAsPdfA="false"
                  pagesize="original" 
                  imageDpi="0"
                  convertToGrayscale="false"
                  imageScale="0.5"
                  imageCompression="50" />

Goobi viewer Indexer

Zur Unterstützung der Kartenfunktionalität wurde das Solr-Schema und der Goobi viewer Indexer erweitert. Beide Komponenten müssen aktualisiert werden. Weiter ist es notwendig eine zusätzliche Jar in den WEB-INF/lib Ordner von Solr abzulegen

cp /opt/digiverso/viewer/apache-solr/collection1/conf/schema.xml /root/BACKUP/$(date -I)
wget -O /tmp/schema.xml https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/schema.xml
cp /tmp/schema.xml /opt/digiverso/viewer/apache-solr/collection1/conf/

wget -O /tmp/jts-1.14.zip http://downloads.sourceforge.net/project/jts-topo-suite/jts/1.14/jts-1.14.zip
unzip -j /tmp/jts-1.14.zip "lib/jts-1.14.jar" -d /tmp
mv /tmp/jts-1.14.jar /var/lib/tomcat8/webapps/solr/WEB-INF/lib/

systemctl restart tomcat8

Der Datenbestand muss neu indexiert werden, ansonsten fehlt die Sektion "Bild" in dem Widget "Zitieren und Nachnutzen.

4.5.0

Goobi viewer Indexer

Damit die Indexierung von im Backend erstellten Dublin Core Datensätzen funktioniert, muss zusammen mit dem Core auch der Indexer aktualisiert werden. Damit das Feature aktiviert wird, muss der indexedDublinCore Ordner definiert werden:

solr_indexerconfig.xml
<indexedDublinCore>indexed_dublincore</indexedDublinCore>

Damit alle Metadaten korrekt indexiert werden auf das Mapping der folgenden Felder achten. Gegebenenfalls müssen einige Felder wie MD_RECORDDESCRIPTION oder MD_ACCESSLICENSE neu angelegt werden.

Feldname

Mapping

PI

<item>dc:identifier</item>

DC

<item>dc:subject</item>

ACCESSCONDITION

<item>dc:rights[not(contains(text(),'http'))]</item>

MD_TITLE

<item>dc:title</item>

MD_LANGUAGE

<item>dc:language</item>

MD_CREATOR

<item>dc:creatory</item>

Zusätzlich noch zu dem XPATH Mapping noch den folgenden Eintrag innerhalb von <groupEntity> ergänzen:

<field name="MD_VALUE">text()</field>

MD_DATECREATED

<item>dc:date</item>

MD_RECORDDESCRIPTION

<xpath>dc:description></xpath>

MD_ACCESSLICENSE

<xpath>dc:rights[contains(text(),'http')]</xpath>

4.4.0

Goobi viewer Core

Auf PDF-Titelseiten im Goobi viewer ist die Unterstützung für hebräische Sprachzeichen hinzugefügt worden. Dafür müssen in der fop.xconf die Schriften definiert und die TTF Dateien daneben abgelegt werden:

mkdir -p /root/BACKUP/$(date -I)
cp /opt/digiverso/viewer/config/PdfTitlePage/fop.xconf /root/BACKUP/$(date -I)
cp /opt/digiverso/viewer/config/PdfTitlePage/*.fo /root/BACKUP/$(date -I)

cd /tmp
git clone https://github.com/intranda/goobi-viewer-core-config.git
cd goobi-viewer-core-config/goobi-viewer-core-config/src/main/resources/install/
cp fop.xconf /opt/digiverso/viewer/config/PdfTitlePage/
cp *.ttf /opt/digiverso/viewer/config/PdfTitlePage/

Anschließend noch in dem Ordner /opt/digiverso/viewer/config/PdfTitlePage/ in den *.fo Dateien die Zeile <fo:flow ...> suchen und darin das Attribut font-family="opensans, unicode" ergänzen.

<!-- Alt -->
<fo:flow flow-name="xsl-region-body">

<!-- Neu -->
<fo:flow flow-name="xsl-region-body" font-family="opensans, unicode">

Weiter ist der schon länger als veraltet gekennzeichnete Schalter <alwaysDisplayDocstruct /> aus der Sektion <toc /> entfallen. Wenn ein entsprechender Eintrag in der lokalen config_viewer.xml existiert kann dieser gelöscht werden. Die Funktionalität wird jetzt über den Bereich <labelConfig /> zur Verfügung gestellt.

Für den Zugriff auf das IIIF Manifest eines Werkes und den Download von Metadaten stehen neue Rechte zur Verfügung. Diese werden nicht automatisch hinzugefügt.

Bei einem Update auf die Version 4.4.0 müssen im Backend konfigurierte Lizenzen geprüft und die neuen Rechte explizit neu hinzugefügt werden!

Goobi viewer Indexer

Wenn DataRepositories und dabei die RemainingSpaceStrategy verwendet werden, muss der Token zur WebAPI des Goobi viewer Cores hinterlegt werden, damit dieser beim Verschieben zwischen den DataRepositories informiert wird:

solr_indexerconfig.xml
<init>
    <viewerAuthorizationToken>CHANGEME</viewerAuthorizationToken>
</init>

Sofern die Unterstützung der Recht-Nach-Links Leserichtung für einzelne Werke gewünscht ist muss das folgende Feld in die Konfigurationsdatei hinzugefügt werden. Dafür muss sichergestellt sein, dass der intranda-Namespace definiert ist:

solr_indexerconfig.xml
<init>
    <namespaces>
        <list>
            <intranda>https://intranda.com/MODS/</intranda>
        </list>
    </namespaces>
<init>

[...]

<BOOL_DIRECTION_RTL>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:extension/intranda:directionRTL</xpath>
            <addToDefault>false</addToDefault>
            <addSortField>true</addSortField>
        </item>
    </list>
</BOOL_DIRECTION_RTL>

Goobi viewer Connector

Bei einem Update auf die Version 4.4.0 des Goobi viewer Connectors ist in der lokalen config_oai.xml zu prüfen ob dort der Schalter <contentApiUrl /> gesetzt ist und wenn ja muss dieser zu <restApiUrl /> umbenannt und der Pfad angepasst werden::

config_oai.xml
<!-- Alt -->
<contentApiUrl>http://localhost:8080/viewer/rest/content/</contentApiUrl>

<!-- Neu -->
<restApiUrl>http://localhost:8080/viewer/rest/</restApiUrl>

Weiter kann optional das Inhaltsverzeichnis eines Werkes als Text im DublinCore Feld dc:description ausgegeben werden. Dafür ist ein Goobi viewer Core ab der Version 4.4.0 notwendig, da ansonsten der notwendige REST Endpoint nicht zur Verfügung steht.

Das Inhaltsverzeichnis in dc:description kann wie folgt konfiguriert werden:

config_oai.xml
<oai_dc>
    <fields>
        <template name="...">
            <metadata label="description" value="#TOC#" />
        </template>
    </fields>
</oai_dc>

2020-01-24

Durch die Refaktorisierung der Bücherregale/Merklisten Funktionalität hin zu einheitlicher Benennung aller Funktionen in im Java-Stack, XHTML-Seiten bis hin zu CSS und JavaScript hat sich auch der Schalter in der Konfigurationsdatei geändert. Bei einem Update auf die Version 4.3.0 muss in der lokalen config_viewer.xml der Schalter <bookshelves /> zu <bookmarks /> umbenannt werden:

config_viewer.xml
<bookmarks>
  <bookmarksEnabled>true</bookmarksEnabled>
</bookmarks>

Ebenfalls muss für die Suche in den Merklisten das gegebenenfalls konfigurierte statische Feld BOOKSHELF in BOOKMARKS umbenannt werden:

config_viewer.xml
<search>
    <advanced>
        <searchFields>
            <field>BOOKMARKS</field>
        </searchFields>
   </advanced>
</search>

2020-01-14

Folgendes SQL Statement ausführen, damit die Beschreibungen von Medien Dateien und die Namen von Werken auf Merklisten länger sein dürfen:

ALTER TABLE cms_media_item_metadata MODIFY description TEXT;
ALTER TABLE bookshelf_items MODIFY name LONGTEXT;

Last updated