Konfiguration

Die Suche können Sie in <GISX3HOME>/config/searchService.properties konfigurieren.

# Specifies a list of services that should be used for default searches
# This defaults to externalsearchservice,housecoordinate,gisx3datastoresearch,lucene
preferredServices=externalsearchservice,housecoordinate,gisx3datastoresearch,lucene

# Specifies if other services than does defined in 'preferredServices' should be used.
# This defaults to 'false' (only use the preferred ones)
useOthersThanPreferred=false

# Specifies wether or not an external search service can be used.
externalServiceEnabled=true

# Specifies what type of external search service should be used.
# Possible values are:
# nominatim - Search by Nominatim
# mapzensearch - Search by MapZenSearch
#
# This defaults to nominatim
externalServiceProvider=nominatim
# The url to an external search service.
# Default value is "http://nominatim.openstreetmap.org/search?q=${searchQuery}&format=json&polygon=0&addressdetails=1&limit=${maxResult}"
# Note that within ${searchQuery} the search string send by user is set, and with ${maxResult} the maximum number of features that should be returned.
externalServiceURL=http://nominatim.openstreetmap.org/search?q=${searchQuery}+stralsund&format=json&polygon=0&addressdetails=1&limit=${maxResult}

# The definition of the output presentation from external service to client.
# Default value is "${address\\:pedestrian} ${address\\:road} ${address\\:house_number}, Stadt: ${address\\:town}"
externalServiceOutput=${address\\:pedestrian} ${address\\:road} ${address\\:house_number}, Stadt: ${address\\:town}

Parameter

BeschreibungStandardwertNeustart erforderlich

preferredServices

Eine kommagetrennte Liste mit Suchdienstnamen die bevorzugt und der angegebenen Reihenfolge verwendet werden sollen.

Dienste die nicht zur Verfügung stehen werden ignoriert.

Eine Übersicht verfügbarer Dienste finden Sie weiter unten.

externalsearchservice,housecoordinate,gisx3datastoresearch
Ja

useOthersThanPreferred

Gibt an ob neben den unter preferredServices angegebenen Suchdienstnamen auch alle anderen durchsucht werden sollen (true oder false).false (Andere werden nicht durchsucht)Ja

externalServiceEnabled

Gibt an ob ein externer Suchdienst (z.B. Nominatim) verwendet werden kann (true oder false).

Diese Option ist standardmäßig aus, da derartige Dienste zunächst konfiguriert werden sollten.

falseNein

externalServiceProvider

Gibt an welcher externe Suchdienst verwendet werden soll.

Zur Verfügung stehen aktuell:

  • nominatim - Verwendet Nominatim
  • mapzensearch - Verwendet MapZenSearch (Achtung! Hierzu ist Anmeldung dort erforderlich)

 

nominatim Nein

externalServiceURL

Die URL zum externen Suchdienst. Diese Angabe erfolgt mit Hilfe eines Templates in das Sie folgende Platzhalter einfügen können:

  • ${searchQuery} - Ist die Suchfeldeingabe des Clients in UTF-8
  • ${maxResults} - Enthält eine Limitierung der Suche (Standard sind 10)
  • ${centerLon} - Längengradangabe in WGS84 des Mittelpunkts des aktuellen Projekts
  • ${centerLat} - Breitengradangabe in WGS84 des Mittelpunkts des aktuellen Projekts
  • ${searchRadius} - Suchradius für das aktuelle Projekt in Metern
  • ${lowerLeftLon} - Längengrad in WGS84 der linken unteren Koordinate der Grenze des aktuellen Projekts
  • ${lowerLeftLat} - Breitengrad in WGS84 der linken unteren Koordinate der Grenze des aktuellen Projekts
  • ${upperRightLon} - Längengrad in WGS84 der rechten oberen Koordinate der Grenze des aktuellen Projekts
  • ${upperRightLat} - Breitengrad in WGS84 der rechten oberen Koordinate der Grenze des aktuellen Projekts

Icon

ACHTUNG! Bei Formulierung muss darauf geachtet werden, dass der externe Dienst tatsächlich JSON zurück gibt.

Die jeweiligen Projektmittelpunkte, Suchradien und Projektgrenzen können Sie an dieser Stelle konfigurieren.

http://nominatim.openstreetmap.org/search?q=${searchQuery}&format=json&polygon=0&addressdetails=1&limit=${maxResult}
Nein

externalServiceOutput

Die Ausgabe der Suchergebnisse in Form eines Freemarker Templates.

Zur Verfügung stehen Ihnen ALLE Eigenschaften der JSON Rückgabe des externen Dienstes. Untergeordnete Elemente des Ergebnisses werden mittels ":" getrennt:

{
	"some": {
		"value":"foo"
	}
},
...

Der Inhalt von "value" steht Ihnen somit in der Variable "some:value" zur Verfügung und kann mittels "${some\\:value}" angesprochen werden.

Der Standardwert hängt vom Inhalt von externalServiceProvider ab.

Bei "nominatim":

${address\\:pedestrian} ${address\\:road} ${address\\:house_number}, Stadt: ${address\\:town}

Bei "mapzensearch":

${label}
Nein

Verfügbare Dienste

In GISX 3 werden mehrere Suchdienste verwendet werden

  • gisx3datastoresearch: Suchen in Themen: Durchsucht in der Themendefinition festgelegte Attribute eines Themas. Nähere Informationen zur Konfiguration können Sie in der Themendefinition nachlesen
  • housecoordinate: Suche in Hauskoordinaten. Erfordert einigen Installationsaufwand in einer GISX 2.X Datenbank in Oracle (Es muss z.B. ein View erstellt werden)
  • externalsearchservice: Suche mit Hilfe von externen Diensten 
  • lucene: Suche mit Hilfe von Lucene

Standardmäßig wird bei der Eingabe in das Suchfeld in der Oberfläche nur die Themen durchsucht.

Icon

Die auf Ihrem Server zur Verfügung stehenden Suchdienste können Sie mittels <GISX3URL>/restservice/search/availableServices erfragen (Rückgabe ist JSON).

Lucene

Lucene ist eine Volltextsuche die sehr performant ist. Damit die Suche verwendet werden kann, muss einerseits "lucene" als Suchprovider eingetragen werden (siehe oben). Andererseits muss ein Index für die durchsuchbaren Daten aufgebaut werden. Dies geschieht vollautomatisch wenn Lucene wie folgt konfiguriert wurde.

Konfiguration

Für die Verwendung von Lucene muss beim Start des Servers die Datei <GISX3HOME>/config/lucene.properties vorhanden sein.

Die Datei enthält aktuell nur einen Eintrag:

<GISX3HOME>/config/lucene.properties
home=Pfad zu einem Verzeichnis

Unter "home" ist der vollständige Pfad zu einem Lucene Index anzugeben (z.B. C:/temp/lucene/myinstance). Falls das Verzeichnis noch nicht existiert, wird es von GISX 3 automatisch angelegt.

Icon

Das angegebene Verzeichnis darf nicht von einer anderen GISX 3 Instanz verwendet werden. Ferner sollten sich im Verzeichnis keine anderen Daten befinden.

Das Verzeichnis sollte sich auf dem gleichen Server wie GISX 3 befinden.

Von Lucene werden anschließend automatisch alle Themen zum Index hinzugefügt, die durchsuchbar sind. Es werden hierbei alle Spalten indiziert die als Suchspalten gelten. Zusätzlich wird der Ausgabetext der Suche indiziert. Mehr zur Konfiguration von Suchspalten und Suchausgabe finden Sie in der Themendefinition.

Aktualisierung

Vor der erstmaligen Verwendung wird der Lucene Index automatisch von GISX 3 angelegt. Das geschieht im Hintergrund, sie können während dieser Zeit normal weiter arbeiten.

Es wird jedoch notwendig sein, den Index zu aktualisieren:

  • Eine Themendefinition hat sich geändert (Durchsuchbare Spalten, Anzeige, Filter etc.)
  • Die Daten haben sich geändert (Ein Index gibt immer nur den Datenstand zum Zeitpunkt seiner Erstellung wieder)

Bis auf weiteres müssen Sie in diesem Fall den Suchindex neu erzeugen.

Dies können Sie entweder manuell machen, indem Sie in Ihrem Browser (Vorher bitte als Administrator anmelden) die URL <GISX3URL>/restservice/lucene/task/forceRebuild aufrufen.

Alternativ können Sie auch CURL (Eine Distribution für ihre Betriebssystem finden Sie unter anderem unter https://curl.haxx.se/download.html) verwenden und in Commandskript als regelmässigen Task ausführen:

curl -u <gisx3admin>:<seinPasswort> <GISX3URL>/restservice/lucene/task/forceRebuild

Folgendes Beispiel stößt die Aktualisierung mittels eines Benutzers "admin" (Passwort "123456") auf einem lokalen Server an:

curl -u admin:123456 http://localhost:8080/gisx3/restservice/lucene/task/forceRebuild

Eine Neuerstellung des Indexes findet in beiden Fällen zum nächsten möglichen Zeitpunkt statt (In der Regel innerhalb der nächsten 5 Minuten).

Beachten Sie bitte das eine Neuerstellung mehrere Minuten dauern kann.

Externe Dienste

Nominatim

Nominatim ist der freie Dienst von Open Street Map. Es ist keinerlei Anmeldung zur Verwendung notwendig, allerdings ist die Anzahl der Abfragen stark limitiert (1 pro Sekunde) und daher nur für Testzwecke geeignet.

Nähere Informationen zu Nominatim finden Sie unter http://wiki.openstreetmap.org/wiki/Nominatim

MapZenSearch

MapZenSearch ist im wesentlichen frei zur Nutzung. Weitere Informationen finden Sie unter https://mapzen.com/:

Eine klassische MapZenSearch Konfiguration:

preferredServices=externalsearchservice

useOthersThanPreferred=false

externalServiceEnabled=true

externalServiceProvider=mapzensearch

externalServiceURL=https://search.mapzen.com/v1/search?api_key=search-TeXrSTX&text=${searchQuery}&boundary.circle.lat=54.30886&boundary.circle.lon=13.07786&boundary.circle.radius=10

externalServiceOutput=${label}

Beachten Sie bitte dass search-TeXrSTX ein Test API Key ist, den Sie durch einen eigenen austauschen müssen. Für einen eigenen API Key benötigen Sie einen GitHub Account mit dem Sie sich bei MapZenSearch registrieren können.

Im Beispiel sind ferner alle anderen Suchen außer die externe mittels MapZenSearch deaktiviert.

Icon

Beim Einsatz von MapZenSearch sollte dies im Copyright Bereich der Karte aufgeführt sein.