Der PrimusSearchService indiziert die zu verwaltenden Daten und bietet eine Möglichkeit für eine schnelle Suche.
Der Primus Search Service liegt i.d.R. im Setup Verzeichnis von Primus unter \Resources\Utils\PrimusSearchService. Es gibt dort folgende Unterverzeichnisse:
| Verzeichnis | Beschreibung |
|---|---|
| db | Verzeichnis in dem die Indexdatenbank nebst Log abliegt |
| offline_calls | Wenn der Suchdienst gestoppt ist, können Clients hier geänderte Dateien hinterlegen die der Dienst nachtträglich verarbeitet wenn er wieder gestartet wird. |
| x64 | Binary Verzeichnis von SQLite |
| x86 | Binary Verzeichnis von SQLite |
Wenn der Suchdienst gestoppt ist, können Clients hier geänderte Dateien hinterlegen die der Dienst nachtträglich verarbeitet wenn er wieder gestartet wird. Dazu muss das Verzeichnis für die Clients erreich- und beschreibbar sein. Das geschieht idealerweise über eine verdeckte Freigabe (offline_calls$). Das Verzeichnis muss sowohl unter SearchServiceDB auf den Clients als auch in der PrimusSearchService.xml eingetragen sein.
In der PrimusSearchService.xml erfolgt die Konfiguration des Suchdienstes.
| Tag | Attribute | Beschreibung | ||
|---|---|---|---|---|
<Configuration> | Stammelement | |||
<Settings> | Den Dienst betreffende Einstellungen | |||
db_path | Ablageverzeichnis für die Datenbankdatei | |||
tcp_port | TCP/IP Port über den die Clients mit dem Suchdienst kommunizieren | |||
offline_calls | Ablageverzeichnis für offline_calls | |||
culture | Definiert die Datumsformatierung für die SQLite Datenbank, culture=„de-DE“ |
|||
<Tables> | Definition der Suchbereiche | |||
<XXX_Projects> | Definiert einen Suchbereich mit dem Namen XXX für Verzeichnisse |
|||
<XXX_Documents> | Definiert einen Suchbereich mit dem Namen XXX für Dokumente |
|||
path | Ablageverzeichnis für die zu indizierenden Daten | |||
prodata | Definiert ob es sich um eine Projekt- (1) oder einen Dokumentenindex (0) handelt |
|||
sqlite | Definiert ob SQLite genutzt (1) werden soll oder nicht (0) |
|||
limit | Maximale Anzahl der Ergebnisse die eine Suche zurück liefern soll (nur SQLite) | |||
map | Ordnet einen Laufwerksbuchstaben einem UNC-Pfad zu | |||
In den Suchbereichen werden die zu indizierenden Datenfelder als Leer-Tag mit dem Namen des Datenfelds und dem Attribut length für die Anzahl der Zeichen des Datenfelds die indiziert werden sollen. Das Attribut length ist bei Verwendung von SQLite nicht mehr erforderlich, für Datumsangaben sollte allerdings das Attribut type mit dem Wert date angegeben werden um korrekte Suchergebnisse zu erhalten.
<ChangeName length="8" /> <ChangeDate length="" type="date" />
Der PrimusSearchService läuft als Dienst, evtl. mit einem speziellen Dienstkonto. Diesem Dienst stehen zur Laufzeit keine Laufwerksbuchstaben zur Verfügung, da diese erst im Kontext einer Benutzersitzung erstellt werden. Damit nun der PrimusSearchService auch diese Dokumente indizieren kann, erfolgt mit map eine Zuordnung eines Pfads mit Laufwerksbuchstaben zu einem UNC-Pfad.
Wenn auf dem Client
<PATH path="K:\FileServer"
dann wird der dies so konfiguriert
<FileServerLocal_Documents path="K:\FileServer" prodata="0" sqlite="1" map="K:\FileServer=\\Cadadaptdev1\d\CADAdapt\PrimusProjekte\DemoPLM\PrimusPLM_SE\Data\FileServer" limit="1000" >
Der PrimusSearchService muss mit als Windowsdienst mit einem Dienstkonto gestartet werden, das folgende Anforderungen erfüllen muss:
Der im Attribut tcp_port konfigurierte Port muss in der Firewall ein- und ausgehend, sowohl auf dem Client als auch dem Server freigegeben sein.