Eine Datei ist eine Datei, die ein XML-Dokument enthält. Diese Datei kann eine oder mehrere Einheiten beinhalten.
Eine Einheit ist ein XML-Dokument, welches eine eindeutige ID enthält. Diese ID muß durch einen Tag innerhalb des Dokuments gekennzeichnet sein.
Ein Pool ist die Gesamtheit von Einheiten, die entweder das Wurzel-Element oder ein Container-Element gemeinsam haben. Dies hängt davon ab, ob sich mehrere Einheiten in einer Datei befinden oder nicht.
Ein Such-Tag ist der Name eines Elementes, der zur Indizierung ausgewählt wurde.
Ein Kontext-Tag ist der Name eines Elementes in dessen Kontext ein Such-Tag stehen kann. Näheres siehe die Beispiel-Konfiguration.
Ein Eintrag ist ein indiziertes Element in der Datenbank mit allen dazu gehörenden Informationen, wie etwa Inhalt, Such-Tag, Kontext-Tag, Pool, Einheit, Datei usw.
Eine-Datei-eine-Einheit.xml <urkunde> <!-- Wurzel-Element --> ... <nr>123</nr> <!-- eindeutige ID dieser Einheit --> .... <arenga> <!-- ein Kontext-Tag --> ... <name> <!-- ein Such-Tag --> Ottonis <!-- der Inhalt eines Eintrages --> </name> ... </arenga> </urkunde> ---- Eine-Datei-mehrere-Einheiten.xml <bap> <!-- Wurzel-Element --> <p> <!-- Container-Element --> ... <id>123</id> <!-- eindeutige ID dieser Einheit --> ... </p> <p> ... <id>124</id> <!-- eindeutige ID nächste Einheit --> ... </p> </bap>
<!ELEMENT config ( pool+ ) > <!ELEMENT pool ( name, entries+ ) > <!ELEMENT name ( #PCDATA ) > <!ELEMENT entries ( entry+ ) > <!ELEMENT entry ( key, value+ ) > <!ELEMENT key ( #PCDATA ) > <!ELEMENT value ( #PCDATA ) >
Die Konfiguration besteht also aus mehreren Pool-Abschnitten. Diese Pools besitzen einen Namen und die Einträge mit den Schlüsseln und den dazugehörigen Werten. Der Pool mit den Namen "psfa" und "mysql" sind besondere Pools, da mit ihnen keine Einheiten verknüpft sind, sondern nur Konfigurationseinträge. Beide Pools müssen vorhanden sein. Die Bedeutungen der einzelnen Schlüssel und der möglichen Werte sind in der Beispiel-Konfiguration (contrib/psfa_conf.xml) dokumentiert.
Die Konfiguration kann mehrfach als Datei vorliegen. Gleiche Schlüssel werden aber nicht überschrieben. An den folgenden Orten und in der folgenden Reihenfolge wird die Konfiguration gesucht.
init | Initialisiert die Datenbank. Legt alle Pools, die in der Konfiguration enthalten sind, an. Wenn sie schon vorhanden sind, werden sie vorher gelöscht. Danach können alle Pools indiziert werden. |
delete Name_des_Pools | Löscht einen Pool aus der Datenbank. |
index Name_des_Pools | Indiziert einen Pool gemäß der Konfiguration. Falls der Pool schon in einem vorherigne Lauf indiziert worden ist, werden nur die Veränderungen in die Datenbank integriert. |
check | Überprüft, ob der Stand der Datenbank noch aktuell ist. Wenn dies nicht der Fall sein sollte - weil die Konfiguration verändert wurde, oder weil die Dateien eines Pools sich geändert haben - wird eine entsprechende Meldung ausgegeben. |