Benutzer-Werkzeuge

Webseiten-Werkzeuge


aps:desktop_index

Verändern der Indizes für den APS-Desktop


Version: APS 2.10.3


APS kann wegen seines konsequenten Rückgriffes aus XML-Strukturen Indizes Bereitstellen, die nicht nur einfach den Inhalt eines Datenfeldes widergeben, sondern die darüber hinaus Indizes mit per XSL-Transformation aufbereiteten Inhalten.
Das Vorgehen zur Erneuerung oder Überarbeitung des Indizes ist wie folgt: Die Indizes werden definiert und für APS konfiguriert. Danach wird das VFS (→ Glossar) ggf. upgedatet und abschließend die zugehörenden EDPs (→ Glossar) neu gestartet.

Um die in APS-Desktop benötigten Indizes zu definieren müssen zwei Dateien bearbeitet werden:

Definition der Indizes in der EJE-INDEX.XML

Die Datei eje-Index befindet sich im Verzeichnis ..\dbconf (z. B. ..\KEK_PRIVATE_PRODUCTION\dbconf).

  • In einem ersten Schritt müssen Bereiche definiert werden, aus denen der IndexBuilder sich die entsprechenden Daten holt, bzw. hier definiert man die vorhandenen Dokumenttypen, indem man dem tag indexedNotes einen xPath zuordnet (im Beispiel wird der Datenbereich des Dokumenttyps AUS definiert):
  <config fragmenttype="aus">
      <indexedNodes>/aus</indexedNodes>
  </config>
  • Um die Begriffe eines Index einer „Vorbehandlung“ zu unterziehen, etwa um führende und nachfolgende Leerzeichen zu entfernen, den Text in Großbuchstaben zu konvertieren, oder Befehle Regulärer Ausdrücke auf diesen anzuwenden, wird im zweiten Schritt ein „normalizer“ definiert. Dieser kann aus mehreren Befehlen bestehen. Bisher bekannt sind: <trim/> (Leerzeichen entfernen), <uppercase/> (Umwandeln in Großbuchstaben), <regexreplace> (Anwenden regulärer Ausdrücke, s. Beispiel:)
  <normalizer name="Deskriptornormalisierung">
      <!-- ####################################### Whitespace Normalisierung -->
      <regexreplace global="true">
          <match>\s+</match>
          <replace> </replace>
      </regexreplace>
      <trim/>
      <!-- ####################################### Entfernt Satzzeichen am Wortanfang -->
      <regexreplace>
          <match>^[\{\(\[\&lt;\&gt;\]\)\}\,\.\"\']+(\S*)$</match>
          <replace>$1</replace>
      </regexreplace>
      <trim/>
      <!-- ####################################### Satzzeichen am Wortende -->
      <regexreplace>
          <match>^([\S]+)[\)\}\]\&lt;\&gt;\.\,\:\;\-\"\']+$</match>
          <replace>$1</replace>
      </regexreplace>
      <trim/>
      <!-- ####################################### Entfernt Deskriptoren, die nur aus x oder y -->
      <regexreplace>
          <match>^[xXyY]+$</match>
          <replace/>
      </regexreplace>
      <!-- ####################################### Whitespace Normalisierung -->
      <regexreplace global="true">
          <match>\s+</match>
          <replace> </replace>
      </regexreplace>
      <trim/>
  </normalizer>
  • Nun kann der jeweilige Index mit dem tag <index> definiert werden (s. Beispiel). Dabei gibt es vier Parameter, von denen vermutlich(!) der Parameter „normalize“ optional ist.
    Der Parameter „Name“ definiert den Systemnamen des Index, nicht zu verwechseln mit dem Namen, unter welchem der Index in APS-Desktop aufrufbar sein wird. Der Parameter „indexgroups“ definiert (vermutlich), ob die Indexierung Block- oder Dokument-bezogen erfolgt. Hinter dem Parameter „normalize“ kann eine der vorher definierten normalizer-Gruppen (s.o.) definiert werden. Hier sind auch mehrere Angaben durch Komma getrennt möglich (s. Beispiel).
    Im letzten Parameter „indexing“ kann festgelegt werden, auf welche Weise indiziert wird: wortweise (indexing=„word“) bzw. Deskriptorweise (getrennt durch & bzw. / ) (indexing=„descriptor“).
    Der tag <index> selbst besitzt zwei Untertags:
    In <field> wird der xPath angegeben, der das zu verwendenden Datenfeld beschreibt. Dieser tag kann auch Kind des tags <context> sein. Darüber hinaus kann man hier mit dem Signalwort „XSL-TEMPLATE:“ auf den Dateinamen einer XSL-Transformation verweisen. Hinter dem Doppelpunkt wird dabei der Dateiname inklusive des Pfades angegeben, den diese Datei mit Blick auf das dbconf-Verzeichnis hat (also keine Pfadangabe, wenn die Datei im dbcobnf-Verzeichnis direkt abgelegt ist).
    In <context> wird über den Parameter „fragmenttype“ der zu nutzende Dokumenttyp definiert. Der tag <field> wird hier dann als Kind-tag verwendet.
    Das folgende Beispiel zeigt zwei Indexdefinitionen, wobei nur in der zweiten der oben definierten „Fragmenttypen“ zum Einsatz kommen:
  <index name="tagesdatum" normalize="trim" indexing="descriptor" indexgroups="block">
      <field>/*/a9920</field>
  </index>
  <index name="titel" normalize="Deskriptornormalisierung,trim" indexing="word" indexgroups="block">
      <context fragmenttype="aus">
          <field>.//a7710/text()[1]</field>
      </context>
      <context fragmenttype="obj">
          <field>.//a5200/text()[1]</field>
          <field>.//a5007/a5013/text()[1]</field>
      </context>
  </index>
  <index name="kuenstler-Link" normalize="trim" indexing="descriptor" indexgroups="block">
      <context fragmenttype="obj">
          <field>XSL-TEMPLATE:index.obj_kue_names</field>
      </context>
  </index>

Festlegen der Indexliste für APS-Desktop in der DESKTOPCONFIG.XML

Die Datei desktopConfig.xml befindet sich im Verzeichnis ..\apps\edpdesktop\vfs\customer\desktop (z. B. ..\KEK_PRIVATE_PRODUCTION\apps\edpdesktop\vfs\customer\desktop ).
Eine ausführliche Darstellung der in dieser Datei möglichen Vorgaben für APS-Desktop ist hier zu finden.

  • Innerhalb des tags <indexes> wird der jeweilige Index für APS-Desktop mit dem tag <index> definiert. Dieser besitzt drei Parameter: „id“, „exact“ und „hidden“„.
    Unter dem Parameter id wird der in der eje-index.xml festgelegt Systemname des Index angegeben (s.o.). Um ggf. Überschriften in der Index-Ansicht von APS-Desktop erzeugen zu können, kann man auch den Index-Namen „dummy1“ usw. verwenden (s. Beispiel).
    Der Parameter hidden erklärt sich quasi von selbst. Hier kann man das Anzeigen eines Index im APS-Desktop unterdrücken. Daher ist der „normale“ Eintrag hier: hidden=„false“ (!).
    Welche genauen Wirkungen der Parameter exact besitzt, ist noch nicht eindeutig klar. Der Eintrag lautet bisher exact=„true“.
    Als untergeordneten tag gibt es für den tag <index> nur den tag <label> mit dem Parameter „lang“, also der Angabe einer Sprache (<label lang=„de“>). Der Inhalt dieses tags definiert den Namen, unter welchem der Index in APS-Desktop aufrufbar ist. Für die Kölner Belange wurde APS zusätzlich befähigt, diesem Eintrag vorangestellte und mit einem Unterstrich abgetrennte Zeichen als Sortierkriterium für die Sortierung der Indexansicht zu nutzen. Die vorangestellten Zeichen werden dabei nicht angezeigt.
  <indexes>
  ...
      <index id="dummy4" hidden="false">
          <label lang="de">04_### Kopfdaten ###</label>
      </index>
      <index id="titel" exact="true" hidden="false">
          <label lang="de">04a__Titel</label>
      </index>
      <index id="datierungen" exact="true" hidden="false">
          <label lang="de">04b__Datierung</label>
      </index>
      <index id="Technik" exact="true" hidden="false">
          <label lang="de">04c__Technik</label>
      </index>
      ...
  </indexes>

neu erstellte Dateien an den "Einsatzort" bringen

Nach der Bearbeitung der eje-index.xml und der desktopConfig.xml müssen beide Dateien an den richtigen Ort kopiert werden. Bitte aus Sicherheitsgründen dafür sorgen, dass die aktuellen Dateien umbenannt und nicht überschrieben werden. Nur so kann ein Fehler in der Konfiguration wieder rückgängig gemacht werden.
Die Dateien müssen in folgende Verzeichnisse kopiert werden:

  desktopConfig.xml -> …\apps\edpdesktop\vfs\customer\desktop\
  eje-index.xml ->     …\dbconf\

Aktivieren der Änderungen (Initialisieren und Updaten des Systems)

Das Aktivieren der Änderungen orientiert sich daran, was an Veränderungen durchgeführt wurde:

Wenn kein neuer Index hinzugefügt wurde, reicht es aus, die Dateien an ihren Ort zu kopieren und dann sofort zum Neuaufbau der Indizes zu springen.

Wurde die Datei destopconfig.xml oder ein neuer Index hinzugefügt, so müssen folgende Schritte durchgeführt werden.

  1. EDP-Server für die betroffene Datenbank neu starten (s. Initialisieren des EDP-Servers).
  2. das VFS (virtuelles File-System) aktualisieren (s. Aktualisierung des VFS)
  3. EDP-Server ggf. erneut neu starten (s. Initialisieren des EDP-Servers).
  4. Neustart der Pipeline von APS zu deren Aktualisierung (s. Neustart der Pipeline (ERE)).

Jetzt erfolgt der Neuaufbau der Indizes mit Hilfe eines entsprechenden Jobs (s. Menü Wartung).

Neuaufbau der Indizes

Nach dem erfolgreichen Updaten des Systems kann man sich auch wieder an APS-Desktop anmelden. Nun bedarf es noch einer Aktualisierung der Indizes, damit die neuen Vorgaben auch benutzt werden können.

Unter der Verwaltungsperspektive kann man in APS-Desktop den Menüpunkt Jobverwaltung aufrufen und darin die Auftragskonfiguration. Um den Index von APS-Desktop zu aktualisieren, legt man zunächst einen neuen Auftrag mit dem Kommando „Indexbuilder“ an. Man trägt zudem ein, dass er über das Aktionsmenü ausgeführt werden soll.
Als XML-Kommando fügt man für den kompletten Neuaufbau der Indizes folgendes ein:

 <indexBuild_job>
     <MaxErrors>5000</MaxErrors>
     <IndexSelection name="*"/>
 </indexBuild_job> 

Um nur einen Teil der Indizes zu erneuern, kann man diese auch einzeln auflisten, indem man statt <IndexSelection name=„*“/> eine Liste der Indizes erstellt:

 <indexBuild_job>
     <MaxErrors>5000</MaxErrors>
     <IndexSelection name="titel"/>
     <IndexSelection name="datierungen"/>
     <IndexSelection name="Technik"/>
 </indexBuild_job> 

Nach dem Speichern des Auftrages kann man diesen über das normale Menü von APS-Desktop unter der Rubrik Aktionen > Wartung starten.
Vorhandene Indizes werden während des Neuaufbaues nicht tangiert, die Arbeitsfähigkeit von APS-Desktop bleibt also erhalten. Ohne die abschließende Initialisierung der Datenbank (s. nächstes Kapitel) kann es jedoch beim Neustart der Datenbank zu Fehlern kommen.


zurück Startseite

aps/desktop_index.txt · Zuletzt geändert: 2021/10/07 09:26 von tn