Konfiguration

Konfigurationsdateien

Folgende Konfigurationsdateien werden von smart.finder verarbeitet:

  1. WEB-INF/classes/default-application.properties (NICHT EDITIEREN)
    In dieser Datei befinden sich alle Konfigurationsoptionen von smart.finder mit ihren Standardwerten.

  2. 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.

  3. [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 Datei WEB-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.

Beispiel .properties
# 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). Wurde INTEGRATED 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, ansonsten false.

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 Wert true 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 ist true.

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:

Angepasste schema.xml
<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:

  1. Durch Kopieren und Anpassen eines existierenden Cores, z.B. core0

  2. Unter Verwendung der Apache Solr CoreAdmin API

  3. 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.