Kapitel 5

This commit is contained in:
Felix Lohmeier 2017-11-29 00:37:31 +01:00
parent e5be768c9c
commit 8e941ad6bf
8 changed files with 309 additions and 2 deletions

View File

@ -53,10 +53,16 @@ Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche \(16.11.2017\)
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
* [4.5 Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
* [4.5 Bonus: Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung \(30.11.2017\)
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
Kapitel 6: Metadaten in Repositorien und Crosswalks \(14.12.2017\)
Kapitel 7: Linked Data, weitere Metadatenstandards, Abschluss \(11.01.2018\)

View File

@ -27,8 +27,13 @@
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
* [4.5 Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
* [4.5 Bonus: Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
* [Kapitel 5](kapitel-5.md)
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
* [Kapitel 6](kapitel-6.md)
* [Kapitel 7](kapitel-7.md)
* [Lerntagebücher](lerntagebucher.md)

View File

@ -1,4 +1,11 @@
# Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung \(30.11.2017\)
Als letzten Schritt in der Kette werden wir in diesem Kapitel das Content-Management-System TYPO3 sowie die Erweiterung TYPO3-find installieren. Beides zusammen bildet die Nutzeroberfläche für den Bibliothekskatalog.
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)

View File

@ -0,0 +1,83 @@
# 5.1 Installation von TYPO3 und TYPO3-find
Ziel: In diesem Kapitel fügt sich das Puzzle zusammen. Wir haben mit OpenRefine die Daten transformiert und als TSV-Dateien gespeichert. Mit dem Suchindex Solr haben wir die TSV-Dateien indexiert. Nun installieren wir die Katalogoberfläche TYPO3-find, um die Daten aus dem Suchindex auf einer Webseite für die NutzerInnen zur Verfügung zu stellen.
Begriffe:
* TYPO3 ist ein häufig genutztes Content Management System (CMS) für Webseiten
* TYPO3-find ist eine von der SUB Göttingen entwickelte Erweiterung für TYPO3
Für Ubuntu gibt es derzeit kein Installationspaket, daher müssen wir die für TYPO3 benötigten Komponenten (Webserver, Datenbank, PHP) manuell installieren.
## Benötigte Pakete (Apache, MySQL, PHP, Composer) installieren
```
sudo apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-mysql mysql-server php-gd php-json php-imagick php-mbstring php-curl php-apcu php-soap php-xml php-zip composer
```
Während der Installation müssen Sie ein Root-Passwort für MySQL vergeben. Denken Sie sich eins aus und notieren Sie dies.
## Konfiguration MySQL
Wenn die Installation abgeschlossen ist, müssen wir eine Datenbank und eine/n Nutzer/in anlegen:
* ```mysql -u root -p```
* MySQL-root-Passwort eingeben
* Anschließend folgende Befehle eingeben (_secretpassword_ durch ein eigenes Passwort ersetzen):
```
CREATE DATABASE typo3 DEFAULT CHARACTER SET utf8;
CREATE USER typo3_db_user@localhost IDENTIFIED BY 'secretpassword';
GRANT ALL PRIVILEGES ON typo3.* TO typo3_db_user@localhost;
FLUSH PRIVILEGES;
quit;
```
## Konfiguration PHP
Optimieren Sie die Einstellungen von PHP für TYPO3:
```
sudo sed -i 's/max_execution_time = 30/max_execution_time = 240/' /etc/php/7.0/apache2/php.ini
sudo sed -i 's/; max_input_vars = 1000/max_input_vars = 1500/' /etc/php/7.0/apache2/php.ini
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/7.0/apache2/php.ini
```
Abschließend ist ein Neustart des Webservers erforderlich:
```
sudo /etc/init.d/apache2 restart
```
## TYPO3 mit Composer installieren
Wir nutzen eine [Distribution von Cedric Ziel](https://github.com/cedricziel/typo3-find-distribution), die TYPO3 und die Erweiterung TYPO3-find beinhaltet. Die Installation erfolgt mit Hilfe des Tools Composer, das wir im ersten Schritt zusammen mit den anderen Paketen installiert haben.
Geben Sie folgende Befehle ins Terminal ein:
```
cd /var/www/
sudo composer create-project cedricziel/typo3-find-distribution katalog dev-master
```
Das Installationsprogramm ```composer``` lädt alle benötigten Programmteile. Die abschließende Abfrage können Sie mit Y oder n beantworten, das ist nicht entscheidend. Nach erfolgter Installation geben Sie folgende weiteren Befehle ins Terminal ein:
```
cd katalog
sudo chown www-data:www-data -R web
sudo touch web/FIRST_INSTALL
sudo sh -c 'echo "<VirtualHost *:80>
DocumentRoot /var/www/katalog/web
ServerName katalog
Options -Indexes
DirectoryIndex index.php index.html
</VirtualHost>" > /etc/apache2/sites-available/katalog.conf'
sudo a2ensite katalog.conf
sudo a2dissite 000-default.conf
sudo service apache2 reload
```
## Konfiguration von TYPO3 mit dem Installationsassistent
Nach der Installation erreichen Sie TYPO3 unter der Adresse http://localhost. Dort treffen Sie zunächst auf den Installationsassistenten.
* In Schritt 2 muss als Username ```typo3_db_user``` und das von Ihnen für den Nutzer typo3_db_user gesetzte Passwort (secretpassword) eingetragen werden.
* In Schritt 3 wählen Sie die Datenbank ```typo3``` in der Option "use an existing empty database"
* In Schritt 4 müssen Sie einen weiteren Account anlegen, diesmal für die Administration von TYPO3. Notieren Sie sich Benutzername und Passwort.
* Wählen Sie in Schritt 5 die Option ```Yes, create a base empty page to start from.```

View File

@ -0,0 +1,64 @@
# 5.2 Grundkonfiguration von TYPO3-find
Falls der Computer zwischenzeitlich neu gestartet wurde, muss der Suchindex Solr neu gestartet werden:
```
~/solr-7.1.0/bin/solr start
```
Die Administrationsoberfläche von TYPO3 ist unter folgender URL verfügbar: http://localhost/typo3/.
## Menü Extensions
* In der Liste neben dem Eintrag ```Find``` auf den Würfel klicken, um die Extension zu aktivieren
## Menü Page
* Seite ```Home``` auswählen
* Button +Content in Spalte "Normal" drücken und im Reiter ```Plugins``` das Plugin ```TYPO3 Find``` auswählen
* Oben den Save-Button betätigen.
## Menü List
* Gleiche Seite auswählen, auf der vorhin das Plugin eingefügt wurde (müsste noch vorausgewählt sein)
* Das Template ```Main TypoScript Rendering``` bearbeiten
* Reiter ```General```: In Textfeld ```Setup``` den vorhandenen Inhalt durch Folgendes ersetzen
```
page = PAGE
page.100 < styles.content.get
page.javascriptLibs.jQuery = 1
page.includeJS.find = EXT:find/Resources/Public/JavaScript/find.js
plugin.tx_find.features.requireCHashArgumentForActionArguments = 0
plugin.tx_find.settings {
connections {
default {
options {
host = localhost
port = 8983
path = /solr/htw
}
}
}
standardFields {
title = title
snippet = creator
}
facets {
10 {
id = format
field = format
sortOrder = count
}
20 {
id = language
field = language
sortOrder = count
}
}
}
```
* Reiter ```Includes```: Rechts bei ```available items``` das Item ```Find (find)``` anklicken.
* Oben den Save-Button betätigen
Rufen Sie anschließend die Webseite http://localhost auf. Der Katalog sollte erscheinen.
Über das Template im Textfeld ```Setup``` kann TYPO3-find konfiguriert werden. Die Funktionen und Konfigurationsmöglichkeiten sind in der Dokumentation beschrieben: http://typo3-find.readthedocs.io/en/latest/index.html

View File

@ -0,0 +1,56 @@
# 5.3 Konfiguration von TYPO3-find erweitern
Über das Template im Textfeld ```Setup``` (vgl. den letzten Schritt aus dem vorigen Kapitel) kann TYPO3-find konfiguriert werden.
## Aufgabe: Ergänzen Sie eine weitere Facette
Hinweise:
* Verwenden Sie das Feld ```Datum``` für die Facette
Literatur:
* Dokumentation von TYPO3-find: http://typo3-find.readthedocs.io/en/latest/index.html
## Lösung
```
page = PAGE
page.100 < styles.content.get
page.javascriptLibs.jQuery = 1
page.includeJS.find = EXT:find/Resources/Public/JavaScript/find.js
plugin.tx_find.features.requireCHashArgumentForActionArguments = 0
plugin.tx_find.settings {
connections {
default {
options {
host = localhost
port = 8983
path = /solr/htw
}
}
}
standardFields {
title = title
snippet = creator
}
facets {
10 {
id = format
field = format
sortOrder = count
}
20 {
id = language
field = language
sortOrder = count
}
}
}
```
## Bonus: Darstellung der Trefferliste und Detailseite anpassen
Für die Anpassung der Detailseiten müssen gemäß der Dokumentation von TYPO3-find die Dateien ```Result.html``` und ```Detail.html``` im Ordner ```Resources/Private/Partials/Display/``` der Extension bearbeitet werden.
Die Dateien liegen bei unserer Installation im Ordner ```/var/www/katalog/web/typo3conf/ext/find/Resources/Private/Partials/Display```.

View File

@ -0,0 +1,85 @@
# 5.4 Relevanzranking mit TYPO3-find und Solr
TYPO3-find basiert auf dem Suchindex Solr, weshalb für das Relevanzranking die Konfigurationsmöglichkeiten von Solr genutzt werden können. Eine Verbesserung der Relevanzsortierung von Trefferlisten kann in der Praxis bereits durch eine einfache Gewichtung der Felder erzielt werden.
* Relevanz ist abhängig vom Nutzungskontext, d.h. von der Person, die sucht und von ihrem Erkenntnisinteresse zum jeweiligen Zeitpunkt.
* Discovery-Systeme versuchen eine subjektiv als "gut" empfundene Relevanzsortierung durch eine unterschiedliche Gewichtung der verschiedenen Metadatenfelder (Titel, UrheberIn, Beschreibungstext) herzustellen.
* Wenn die Daten uneinheitlich sind (z.B. wenn zu einem Objekt viele und zu einem anderen Objekt sehr wenige beschreibende Daten vorliegen), dann führt dies oft zu unerwarteten Rankings, weil der Suchindex in der Standardkonfiguration das Verhältnis der Suchtreffer in einem Dokument zur Gesamtlänge des Dokuments in die Berechnung der Relevanzsortierung einfließen lässt.
* Weil die Definition eines Algorithmus auf Basis von objektiven Kriterien so schwer fällt, wird in der Praxis die Gewichtung der Felder oft experimentell auf Basis von häufig durchgeführten Suchen austariert. Nutzerstudien sind beim Relevanzranking also besonders wichtig.
## Schritt 1: Parser konfigurieren
Die Suchabfragen werden in Solr durch einen Parser interpretiert. Der voreingestellte Parser erlaubt keine einfache Gewichtung von Feldern, daher nutzen wir den sogenannten "eDismax" Parser. Dieser Parser muss in der Konfiguration von TYPO3-find aktiviert werden. Rufen Sie dazu die TYPO3-Administrationsoberfläche in der virtuellen Maschine auf http://localhost/typo3/ und wählen Sie im Menü List / Seite "Home" das Template "Main TypoScript Rendering". Ersetzen Sie dort den vorhandenen Eintrag im Textfeld Setup durch folgenden Abschnitt und drücken Sie anschließend den Save-Button:
```
page = PAGE
page.100 < styles.content.get
page.javascriptLibs.jQuery = 1
page.includeJS.find = EXT:find/Resources/Public/JavaScript/find.js
plugin.tx_find.features.requireCHashArgumentForActionArguments = 0
plugin.tx_find.settings {
connections {
default {
options {
host = localhost
port = 8983
path = /solr/htw
}
}
}
standardFields {
title = title
snippet = creator
}
facets {
10 {
id = format
field = format
sortOrder = count
}
20 {
id = language
field = language
sortOrder = count
}
30 {
id = date
field = date
sortOrder = count
}
}
features {
eDisMax = 1
}
}
```
## Schritt 2: Relevanzranking einstellen
Im folgenden Befehl sind alle Felder mit Faktor 1 gewichtet. Variieren Sie die Zahlen und entfernen Sie Felder, die Sie aus dem Relevanzranking ausschließen wollen. Prüfen Sie die Ergebnisse im Katalog, machen Sie Beispielsuchen und nähern Sie sich Stück für Stück einem effektiven Relevanzranking an.
Befehl zur Eingabe im Terminal:
```
curl http://localhost:8983/solr/htw/config -H 'Content-type:application/json' -d '{
"update-requesthandler": {
"name": "/select",
"class":"solr.SearchHandler",
"defaults":{
"echoParams":"explicit",
"rows":"10"
},
"appends":{
"defType":"edismax",
"qf":"contributor^1 coverage^1 creator^1 date^1 description^1 extent^1 format^1 identifier^1 language^1 pages^1 publisher^1 rights^1 title^1 type^1"
}
}
}'
```
## Literatur
* Präsentation von Elmar Haake: Relevanzranking als Erfolgsfaktor für Discoverysysteme. http://docplayer.org/3530893-Relevanzranking-als-erfolgsfaktor-fuer-discoverysysteme-elmar-haake-staats-und-universitaetsbibliothek-bremen.html
* Hajo Seng: Relevance-Ranking auf dem VuFind-Anwendertreffen (siehe die dort verlinkten Papiere und Vortragsfolien). http://beluga-blog.sub.uni-hamburg.de/blog/2015/10/02/relevance-ranking-auf-dem-vufind-anwendertreffen-2015/
* Solr/Lucene Score Tutorial: http://www.openjems.com/solr-lucene-score-tutorial/
* The Extended DisMax Query Parser: https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+Parser

View File

@ -0,0 +1 @@
# 5.5 Suchmaschinenoptimierung