Agora System
2.3.1 Configuration of the repository - 'config.xml'
'config.xml' weist im Wesentlichen 3 Steuerungselemente auf:
-
1. <element-handler> - für die Behandlung der Objekte
-
2. <index-handler> - für die Behandlung des Index
-
3. <content-handler> - für die Behandlung der Projektinhalte
Beispiel für eine <element-handler>-Einstellung:
<element-handler class="de.srz.agora.repository.impl.handler.element.StandardElementHandler"> <directory>collection</directory> <incrementsize>2097152</incrementsize> <elementcache>10</elementcache> <relationshipcache>10</relationshipcache> <publicaccess>yes</publicaccess> </element-handler>
<directory> legt den Verzeichnisnamen für die Agora-Objekte fest. Im Beispiel wird im
Repository ein Unterverzeichnis 'collection' angelegt. Für Standardanwendungen sollte diese Konvention beibehalten werden
<incrementsize> bestimmt die Größe, um die sich das Repository vergrößert, wenn ein neues Objekt hinzugefügt wird.
Die Angabe wird in Byte erwartet und sollte daher ein Vielfaches von 1024 (1 KByte) betragen. Als sinvolle Untergrenze kann
1024 (1 KByte)
eingetragen werden, als Obergrenze bietet sich 1073741824 (1 GByte) an. Empfohlener Wert ist 1048576 (1 MByte).
<elementcache>
<relationshipcache>
Sowohl <elementcache> als auch<relationshipcache> werden nur wirksam, wenn
der Handler <element-handler class="de.srz.agora.repository.impl.handler.element.CachedElementHandler">
eingesetzt wird. Die Caches arbeiten nach dem Prinzip 'Least recently used' (LRU), d. h. die am längsten nicht verwendeten
Einträge
werden aus dem Cache entfernt. Die Eingabewerte beziehen sich auf die Größe des Caches für Elemente bzw. Elementbeziehungen.
Defaultwert ist 10, Minimum ist 1, ein sinnvolles Maximum wäre 1000. Wenn keine Performanceprobleme bestehen, sollte an
der
Standardkonfiguration nichts geändert werden.
<publicaccess> ermöglicht die Zugriffsbeschränkung auf bestimmte Objekte des Repository.
<publicaccess> wird bislang nur in ganz speziellen Kontexten eingesetzt und sollte standardgemäß auf
"yes" gesetzt bleiben
Beispiel für eine <index-handler>-Einstellung:
<index-handler class="de.srz.agora.repository.impl.handler.fulltext.StandardFulltextHandler" type="fulltext"> <directory>fulltextlt;/directory> <inheritance>yes</inheritance> <includepages>yes</includepages> <usedefaultsort>no</usedefaultsort> <publicaccess>yes</publicaccess> </index-handler>
<directory> legt den Verzeichnisnamen für die Agora-Index fest. Im Beispiel wird im
Repository ein Unterverzeichnis 'fulltext' angelegt.
<inheritance> 'yes' bedeutet, daß Attributwerte über Dokumentebenen hinweg vererbt werden.
Dies bedeutet, daß man Dokumente mit Attributwerten finden kann, die mit dem betreffenden Dokument direkt nicht verknüpft
sind.
Ein Anwendungsbeispiel: Das Attribut 'Veröffentlichungsjahr' ist für eine Zeitschriftensammlung nur auf der Hierarchieebene 'Zeitschriftenband' vergeben worden. Ein Benutzer sucht nun einen Aufsatz von dem er nur den 'Namen' des Autors und eben das 'Veröffentlichungsjahr' des Textes kennt. Wenn <inheritance> auf 'no' gesetzt wäre, würde der Benutzer entweder gar keinen Treffer erhalten (die Attribute 'Veröffentlichungsjahr' und 'Name' sind mit UND verknüpft) oder aber u. U. eine sehr umfangreiche Trefferliste (die Attribute sind mit ODER verknüpft). Mit <inheritance> 'yes' (bei verUNDeten Attributen) würde man in dem dargestellten Beispiel exakt den gewünschten Aufsatz finden.
<includepages> muss eingeschaltet sein, wenn Dokumentseiten im Volltext erschlossen wurden
(z. B. durch OCR) und das 'Hihlighting-on-Facsimile' aktiviert werden soll.
<usedefaultsort> erzeugt eine zusätzliche Sortierung der Repository-Objekte nach der DocumentID.
Der Schalter sollte jedoch immer auf 'no' gestellt sein, da mehrere Sortierkriterien Lucene langsamer machen.
Benötigt man ein bestimmtes zusätzliches Sortierkriterium sollte dies bei der Suche expizit eingeben werden (siehe Beschreibung
der Agora Recherche). Der Schalter <usedefaultsort> sollte aber nicht aus der config.xml entfernt werden,
auch wenn sein Wert auf 'no' gesetzt ist. Fehlt der Schalter, wird eine Sortierung grundsätzlich ausgeschlossen.
<publicaccess> analog zum <element-handler>.
Beispiel für eine <content-handler>-Einstellung:
<content-handler class="de.srz.agora.repository.impl.handler.content.StandardContentHandler"> <directory>collection</directory> <incrementsize>2097152</incrementsize> <external-path-resolver class="de.srz.agora.repository.impl.handler.content.DummyExternalPathResolver"/> </content-handler>
<directory> weist den Agora Inhalten ein Verzeichnis zu. Im Beispiel wird dasselbe
Unterverzeichnis 'collection' verwendet, das auch der <element-handler> benutzt.
<incrementsize> bestimmt die Ausgangsgröße des Repository.
<external-path-resolver> lädt die Java-Klasse, die die Pfadeinstellungen zu den
Projektdaten organisiert.