Konfiguration
Konfigurationsdateien
Folgende Konfigurationsdateien werden von smart.finder verarbeitet:
-
WEB-INF/classes/default-application.properties
(NICHT EDITIEREN)
In dieser Datei befinden sich alle Konfigurationsoptionen von smart.finder mit ihren Standardwerten. -
WEB-INF/classes/custom-application.properties
Wenn eine Änderung des Arbeitsverzeichnisses (data.directory.location
) nötig ist, muss die Änderung in dieser Datei erfolgen. Alle weiteren Anpassungen erfolgen in der nachfolgenden Datei. -
[data.directory.location]/application.properties
Das Bearbeiten dieser Datei ist der empfohlene Weg Konfigurationsänderungen vorzunehmen. Das Arbeitsverzeichnis (data.directory.location
) von smart.finder ist in der Standardinstallation das Verzeichnis${user.home}/.smartfinder
. Die Datei wird nicht automatisch erstellt, daher kann als Vorlage die DateiWEB-INF/classes/application.properties
dienen. Es wird empfohlen nur die Einstellungen in der Datei zu belassen, die geändert wurden.
Das Format der Konfigurationsdateien muss dem Java .properties
Dateiformat entsprechen, welches unter https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html beschrieben ist.
# Die Dateien müssen UTF-8 kodiert sein, sonst können Umlaute zu Fehlern führen!
# Am sichersten ist die Kodierung von Umlauten in Unicode-Syntax z.B: ä = \u00E4 (vgl. http://0xcc.net/jsescape/)
# Kommentare erfolgen mit vorangestellter Raute
# Allgemeine Syntax:
key = value
# Ein Value kann einen anderen Key referenzieren
key1 = http://${key.with.server}/test
Nach der Änderung einer der Konfigurationsdateien ist ein Neustart der Web-Applikation erforderlich (Sie können auch den kompletten Tomcat Server neu starten). |
Client Properties
Diese Datei befindet sich im Verzeichnis: [TOMCAT]\webapps\ct-finder-client-webapp-[VERSION]\WEB-INF\classes\
. Innerhalb dieser Datei können folgende Parameter angepasst werden:
- client.config.defaultLocale
-
smart.finder unterstützt in der Benutzeroberfläche standardmäßig die Sprachen Deutsch und Englisch. Die Spracheinstellung des Browsers wird erkannt und smart.finder wird in der entsprechenden Sprache gestartet. Falls die Sprache im Browser weder Deutsch, noch Englisch entspricht, wird der Wert, der in dieser Einstellung festgelegt ist, eingesetzt.
- proxy.allowedServerUrls
-
smart.finder stellt ein integriertes Proxy Servlet bereit. Dieses wird benötigt, da ein direkter Zugang zu bestimmten Ressourcen, die nur unter einer anderen Domänen erreichbar sind, aufgrund von Sicherheitsbeschränkungen innerhalb von JavaScript untersagt ist. Dieser Parameter enthält eine Liste von URLs, auf die das Proxy Servlet zugreifen darf.
Nach jeder URL muss ein ";" gesetzt werden. Jede Zeile, mit Ausnahme der Letzten, endet mit einem "\". |
- finder.service.url
-
Dies ist der Context-Name des smart.finder Servers (Standard:
/ct-finder-server-webapp-[VERSION]
). Wurde der Name bei der Installation des smart-finder Servers geändert (siehe: Installation von smart.finder), so muss hier der aktuelle Name eingetragen werden.
Server Properties
Die Datei zur Änderung der Server-Einstellungen befindet sich hier: [TOMCAT]\webapps\ct-finder-server-webapp-[VERSION]\WEB-INF\classes\
. Innerhalb dieser Datei können folgende Parameter angepasst werden:
- security.mode (
INTEGRATED
|NONE
|ONYL_AUTHN
) -
Der Zugriff auf die administrativen Bereiche des smart.finder kann bei Bedarf geschützt werden. Hierzu muss der Wert dieses Parameters auf
INTEGRATED
gesetzt werden (ansonsten:NONE
). WurdeINTEGRATED
ausgewählt, so kann der Modus über den folgenden Parametersatz näher spezifiziert werden: - security.user.admin.name
-
Der Benutzername im Plaintext.
- security.user.admin.pw
-
Das Passwort des Benutzers. Diese muss entsprechend der gewählten Kodierung beschrieben sein.
- security.user.pwenc (
plain
|MD5
|SHA-1
) -
Die Kodierung des Passworts. Dieses kann "plain" (keine Kodierung) oder mittels MD5 (Message-Digest Algorithm 5) bzw. SHA-1 (secure hash algorithm) erfolgen. Für letztere Varianten existieren verschiedenen Webdienste, die bei der Erzeugung der verschlüsselten Passwörter unterstützen, z.B. http://www.sha1generator.de/ oder http://www.md5generator.de/.
- security.user.use_mapped_pass (
true
|false
) -
Falls eine andere Passwortkodierung als "plain" gewählt wurde, muss der Wert dieses Parameters
true
sein, ansonstenfalse
. - security.ssl.trustAny
-
Der Schalter aktiviert die Unterstützung für selbst signierte Zertifikate bei HTTPS-Verbindungen. Standardmäßig ist die Funktion deaktiviert (
false
). Eine Änderung auf den Werttrue
aktiviert die Funktion. - solr.indexing.delay
-
Zeitraum in Millisekunden, nachdem die Indizierung startet.
- solr.indexing.period
-
Zeitraum in Millisekunden, nachdem geprüft wird, ob die angelegten Dokumente indiziert werden müssen.
- solr.solr.home
-
Verzeichnispfad zum
solr.home
(absolut oder relativ). Es können auch Platzhalter verwendet werden, die durch den Web Container aufgelöst werden, also z.B.${catalina.base}/webapps/ct-finder-server-webapp-[VERSION]/WEB-INF/solr.home
- mailing.host
-
Der Rechnername, auf dem ein SMTP Server für das Versenden von E-Mails zur Verfügung steht.
- mailing.port
-
Der SMTP Port auf dem SMTP Host-Rechner.
- mailing.username
-
Benutzername für den SMTP Server (falls erforderlich).
- mailing.password
-
Passwort für den SMTP Server (falls erforderlich).
- mailing.senderaddress
-
Antwortadresse für den E-Mail Versand.
- mailing.locale (
de
|en
) -
Spracheinstellung für das Versenden von E-Mails.
- indexing.execution.restartFailedJobs
-
Wenn
true
, werden Jobs mit dem Status "failed" und konfiguriertem Scheduling weiterhin wiederholt und erneut ausgeführt. Andernfalls ist ein manuelles Neustarten der Jobs notwendig. Standardwert isttrue
. - indexing.execution.maxThreads
-
Gibt an, wie viele Jobs maximal parallel ausgeführt werden können. Alle weiteren Jobs werden einer Warteschlange angehängt. Standardwert ist
-1
, was gleichbedeutend ist mit der Anzahl vorhandener CPU-Kerne - 1. - indexing.thumbnails.enabled
-
Aktiviert die Harmonisierung von Vorschaubildern hinsichtlich ihrer Größe (Default: false)
- indexing.thumbnails.height
-
Wenn
indexing.thumbnails.enabled=true
ist legt dieser Wert die Zielhöhe der Vorschaubilder fest. - indexing.thumbnails.width
-
Wenn
indexing.thumbnails.enabled=true
ist legt dieser Wert die Zielbreite der Vorschaubilder fest. - indexing.thumbnails.resizeMode
-
Skalierungsmodus, der festlegt, wie die Proportionen des Miniaturbildes berechnet werden sollen. Muss einer der folgenden Modi sein: AUTOMATIC, FIT_EXACT, FIT_TO_WIDTH oder FIT_TO_HEIGHT.
- indexing.crawler.politenessInMs
-
Die Verzögerung in Millisekunden zwischen zwei aufeinanderfolgenden Anfragen. Setzen Sie diesen Parameter > 0, um ein Denial-Of-Service-Angriffsverhalten zu vermeiden.
- indexing.dih.maxRetries
-
Die Anzahl der Wiederholungsversuche, um zu sehen, ob der Serverprozess beendet ist
- indexing.dih.retryDelayInSeconds
-
Die Sekunden, die auf die nächste Wiederholung gewartet werden müssen
- indexing.dih.requestHandlerContext
-
Der Kontextname des Datenimporthandlers. Wenn Sie diesen Wert ändern, muss er auch in der Konfigurationsdatei (siehe: solrconfig.xml) der betroffenen Cores geändert werden
- indexing.csw.pageSize
-
Eigenschaft, die definiert, wie viele Dokumente bei der Indizierung eines CSW-Dienstes gleichzeitig angefordert werden
- indexing.ags.content.pageSize
-
Eigenschaft, die definiert, wie viele Features bei der Indizierung eines AGS-Dienstes gleichzeitig angefordert werden
- indexing.ags.content.maxRetryCount
-
Anzahl der Wiederholungsversuche, wenn eine Anfrage gegen einen AGS-Dienst fehlschlägt
- indexing.ags.content.retryDelayInSeconds
-
Verzögerung in Sekunden zwischen zwei aufeinanderfolgenden Versuchen gegen einen AGS-Dienst
Änderung der Namen des Web Contextes
smart.finder wird mit zwei Standard-Web-Context-Namen ausgeliefert:
-
ct-finder-client-webapp-[VERSION]
-
ct-finder-server-webapp-[VERSION]
Um die Web-Applikationen unter anderen Namen im Tomcat-Container zu installieren, können Sie diese gemäß den Servlet API Vorgaben ändern. Nachfolgend müssen zudem folgende Parameter in den Web-Applikationen selber angepasst werden:
In der Datei
[TOMCAT_HOME]\webapps\ct-finder-server-webapp-[VERSION]\META-INF\context.xml
muss der Wert der Umgebungsvariable solr/home
angepasst werden.
In der Datei application.properties
für die ct-finder-client-webapp muss der Wert der Property finder.service.url
entsprechend angepasst werden.
Änderung des Speicherorts des Index
In der Standardauslieferung wird der Index von smart.finder unter folgendem Pfad abgelegt:
[TOMCAT_HOME]\webapps\ct-finder-server-webapp-[VERSION]\WEB-INF\solr.home
Den Speicherort können Sie in folgender Datei ändern:
[TOMCAT_HOME]\webapps\ct-finder-server-webapp-[VERSION]\META-INF\context.xml
Hierzu müssen Sie den Wert der Umgebungsvariable solr/home
entsprechend anpassen.
Suchergebnisse sortieren
In der Standardkonfiguration wird das Ergebnis einer Suchanfrage an den Index anhand der Trefferwahrscheinlichkeit sortiert (Score). Sollen Ergebnisse im Gegensatz dazu nach einem Feld (z.B. "Titel") alphabetisch sortiert werdern, so muss die Schema-Konfiguration dieses Feldes eindeutig sein. Das heißt, Felder, die von Analyzern benutzt werden (unter anderem alle Felder vom type "text"), können nur für die Sortierung von Suchergebnissen benutzt werden, wenn der Analyzer genau einen einzigen Ausdruck generiert. Weitere Einschränkungen für das Sortieren finden Sie in der Solr Dokumentation. Um dennoch auf solchen Feldern sortieren zu können, müssen diese Felder im Schema mittels copyField in ein neues Feld mit einem anderen Typ kopiert werden. Nachfolgend ein Beispiel für das Feld name
:
<fields>
[...]
<field name="name" type="text" indexed="true" stored="true" required="false" multiValued="false"/>
<copyField source="name" dest="name_string"/>
<field name="name_string" type="string" indexed="true" stored="true" required="false" multiValued="false"/>
[...]
</fields>
Speichern Sie die Datei. Starten Sie den smart.finder Server oder Apache Tomcat neu, damit die Änderungen wirksam werden.
Konfiguration von Synonymen der Facettenwerte
Manchmal sind die in der Datenbank verwendeten Begriffe für eine Sache nicht einheitlich. Zum Beispiel beziehen sich die Werte shape
und Shapefile
beide auf dasselbe Format. Das bedeutet es handelt sich bei ihnen um Synonyme. In einem solchen Fall sollten diese Werte zusammengefasst werden. Zum Beispiel könnte man die Werte der Facette Format
immer als SHP
in der Benutzeroberfläche anzeigen.
Um dies zu konfigurieren sind 3 Schritte nötig:
Schritt 1: Abbildung von Werten auf Synonyme
Synonyme werden in einer Konfigurationsdatei eingepflegt, die unter /ct-finder-server-webapp-[VERSION]/WEB-INF/solr.home/core0/conf/lang/synonyms.txt
zu finden ist.
Für das obige Beispiel müsste die folgende Zeile ergänzt werden:
shape, Shapefile ⇒ SHP
.
Die Werte vor dem Pfeil werden zusätzlich im Index abgelegt. Es kann weiterhin nach shape und Shapefile gesucht werden, aber eben auch nach SHP . Im Attributfilter wird immer SHP angezeigt. Ein Filter auf dem Wert SHP schließt dann alle seine Synonyme mit ein.
|
Schritt 2: Synonym-Index-Verknüpfung
Nun müssen die Synonyme noch mit dem Feld im Index verknüpft werden. Dazu muss die Datei /ct-finder-server-webapp-[VERSION]/WEB-INF/solr.home/core0/conf/schema.xml
geöffnet werden und das Feld ausfindig gemacht werden, für dessen Werte die Synonyme definiert werden sollen.
In unserem Beispiel handelt es sich um das Feld format
:
<field name="format" type="string" indexed="true" stored="true" required="false" multiValued="true"/>
Direkt darunter wird nun ein neues Feld mit Typ text_synonym
angelegt, beispielsweise mit dem Namen format_facet
und den folgenden Attributen:
<field name="format_facet" type="text_synonym" indexed="true" stored="true" required="false" multiValued="true"/>
Weisen Dokumente beim Indexieren einen Wert für das Feld format
auf, wird dieser auch in das Feld format_facet
kopiert. Dieses Feld kann als Facette genutzt werden und muss dann auch in der Client-Konfiguration facetFields
konfiguriert werden.
Einen neuen Core hinzufügen
Ab Version 2.0.0 ist es möglich, zusätzliche Cores zu realisieren. Ein Solr Core aus einer Reihe von Konfigurationsdateien, Lucene-Indexdateien und dem Transaktionsprotokoll von Solr. smart.finder wird mit 3 Cores ausgeliefert:
-
indexingmanagement
: wird nur für interne Zwecke verwendet, z.b. Verwaltung der die Indexierungsjob -
core0
: der Standard-Core mit einer vorgefertigten Konfiguration, die für eine Vielzahl von Anwendungsfällen verwendet werden kann. -
smartsearch
: dieser Core kann für die map.apps Smart Search Extension verwendet werden.
Sämtliche Cores müssen im solr.home Verzeichnis abgelegt werden. Der Aufbau ist (minimal) wie folgt:
/<core name>
core.properties
/conf
/lang
...
schema.xml
solrconfig.xml
tika-config.xml
Um einen neuen Core zu erzeugen gibt es eine Reihe von Möglichkeiten:
-
Durch Kopieren und Anpassen eines existierenden Cores, z.B. core0
-
Unter Verwendung der Apache Solr CoreAdmin API
-
Unter Verwendung der Apache Solr Admin UI
Bei der Erstellung eines neuen Core ist darauf zu achten, dass verpflichtende Felder im Schema auf jeden Fall definiert werden. Diese sind:
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="timestamp" type="date" indexed="true" stored="true" multiValued="false" default="NOW"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="relatedIndexJobId" type="string" indexed="true" stored="true" multiValued="false" required="false"/>
Wenn eine neuer Core erzeugt wurde, kann dieser nach dem Neustart des smart.finder Server im Job Manager für jeden Job ausgewählt werden. Sämtliche Dokumente des Jobs werden dann in diesem Core indexiert.