Content-Indizierung

Collections

Die Search Cartridge indiziert Dokumente in so genannte Collections. Die Möglichkeit, für die Indizierung eines bestimmten Dokuments eine bestimmte Collection zu wählen, kann später dazu verwendet werden, die Suche zu beschleunigen. So braucht beispielsweise bei einem Webauftritt in zwei oder mehr Sprachen nur der Content in einer Sprache durchsucht zu werden, wenn die Sprache ein Auswahlkriterium bei der Suche ist. Es ist jedoch auch möglich, mehrere oder alle Collections zu durchsuchen.

Bei der Installation von CMS Fiona werden zwei Collections angelegt, je eine für die Redaktions- und die Live-Seite. Weitere Collections können mit einem Tcl-Kommando des Search Servers angelegt werden. Hierbei wird eine vorgegebene Konfiguration verwendet, die unter anderem Ländereinstellungen wie den Zeichensatz der indizierten Dokumente und die Dokumentfelder festlegt, deren Werte in Suchergebnissen zurückgegeben werden sollen. Die Struktur einer Collection lässt sich nicht nachträglich ändern.

Wenn auf dem Live-Server die Template Engine eingesetzt wird, wird für die Indizierung und die Suche ein Collection-Paar verwendet. Während Suchanfragen mit Hilfe der gerade live geschaltete Collection beantwortet werden, wird aktualisierter Content in die zweite, offline geschaltete Collection indiziert. Ein solches Collection-Paar wird umschaltbare Collection genannt.

Ist auf dem Live-Server die Template Engine nicht verfügbar, so lassen sich die Live-Server-Collections auch mit dem Content Manager erzeugen. Sofern dies in der Systemkonfiguration eingeschaltet wurde, werden die mit dem Befehl exportSubtree exportierten Dokumente automatisch indiziert.

Indizierte Daten

Auf dem Redaktionssystem indiziert die Search Cartridge die Versionen von Dateien sowie einige wichtige Dateifelder. Es ist konfigurierbar, welche Arten von Versionen indiziert werden sollen, wobei eine beliebige Kombination aus Arbeitsversionen, freigegebenen und archivierten Versionen wählbar ist.

Auf dem Live-Server dagegen werden von der Template Engine die UTF-8-kodierten exportierten Dokumente mit ihren Metadaten indiziert, bevor die konfigurierte Export-Kodierung auf sie angewendet wird. Bei Dateien, zu deren Export auch Daten anderer Dateien herangezogen werden (Framesets, Layoutdateien für den Hauptinhalt), werden nur die Metadaten der Hauptdatei indiziert.

Framesets und ihre Frames werden gemeinsam als ein einziges Dokument indiziert. Daher wird im Suchergebnis das Frameset geliefert, wenn ein dazu gehörendes Frame auf eine Suchanfrage passt. Steht die Template Engine auf dem Live-Server nicht zur Verfügung, so kann der Content Manager die Indizes beim statischen Export erzeugen.

Da die Search Cartridge nicht nur die Versionsfelder, sondern auch die wichtigsten Dateifelder indiziert, erhält man auch dann Suchergebnisse, wenn man nach Feldern wie dem Dateinamen oder dem Dateiformat sucht.

In den Werten von Feldern, die HTML-Text enthalten (wie body), bewirken die SGML-Kommentare <!-- noindex --> und <!-- /noindex -->, dass der Text zwischen diesen beiden Kommentaren nicht indiziert wird. Kommentare werden grundsätzlich nicht indiziert.

Der Content Manager indiziert eine Version für die Suche im Redaktionssystem, wenn sich der Wert eines indizierten Datei- oder Versionsfeldes oder der Dateistatus durch Workflowaktionen wie Freigeben oder Zurückziehen ändert. Für die Suche auf dem Live-System indiziert wahlweise die Template Engine oder der Content Manager die Webdokumente während sie exportiert werden.

Dokumentzonen und -felder

Der Search Engine Server erhält die zu indizierenden Daten einer Version oder eines Webdokuments als XML-Dokument in einem Request. In einem solchen Dokument entspricht jedes Feld einem XML-Element. So wird beispielsweise das zusätzliche Versionsfeld abstract folgendermaßen in der erzeugten XML-Datei abgelegt:

<abstract>Zusammenfassung des Dokuments</abstract>

Sobald der Search Engine Server dem Autonomy-Such-Modul das zu indizierende Dokument übergeben und das Such-Modul es indiziert hat, entsprechen die indizierten Felder der CMS-Datei so genannten Zonen. Zonen sind benannte durchsuchbare Dokumentbereiche.

Man kann Suchanfragen explizit auf eine oder mehrere Zonen beschränken, um nach Dokumenten zu suchen, die den Suchbegriff in diesen Zonen enthalten. Eine solche Suche wird "attributiert" genannt, weil sie nicht das gesamte Dokument erfasst, sondern nur ausgewählte Bereiche. Bei jeder Suchanfrage, die sich nicht explizit auf bestimmte Zonen bezieht, werden stets alle Zonen durchsucht.

Während Dokumentzonen es ermöglichen, Dokumentbestandteile gezielt zu durchsuchen, dienen Dokumentfelder dazu, das Suchergebnis je gefundenem Dokument mit den Informationen anzureichern, die man auf den Ergebnisseiten anzeigen möchte. So wird in der Standardkonfiguration das Versionsfeld title nicht nur zu einer Zone, sondern sein Inhalt wird ebenfalls im Dokumentfeld title gespeichert. Dadurch können die Titel der Dokumente von der Search Cartridge in die Suchergebnisse aufgenommen und von den Clients zu beliebigen Zwecken verwendet werden.

Dokumentzonen und -felder sind frei konfigurierbar (siehe Collections konfigurieren). Eine Version einer CMS-Datei kann beliebig viele Versionsfelder haben, die bei der Indizierung zu ebenso vielen Dokumentzonen werden, sofern durch die Konfiguration nicht Zonen von der Indizierung ausgeschlossen oder nur bestimmte Zonen zugelassen werden.

Alle indizierten Dokumente haben dagegen immer alle Dokumentfelder. Wenn die Konfiguration beispielsweise vorsieht, dass der Inhalt einer Zone in einem bestimmten Feld gespeichert werden soll, so hat das indizierte Dokument dieses Feld auch dann, wenn die betreffende Zone nicht in dem Dokument vorkommt. Das Feld bleibt in diesem Fall leer.

Ein Client, der eine Suchanfrage an den Search Engine Server sendet, kann in seinem Request explizit die Felder angeben, deren jeweiligen Inhalt er im Suchergebnis erhalten möchte (siehe Suchanfragen). Die Zonen und Felder, die es in der Standardkonfiguration gibt, sind im Abschnitt Content-Suche aufgeführt.

Vorverarbeitung bei der Indizierung

Vor der eigentlichen Indizierung eines Dokuments können Sie den Search Engine Server jedes Dokument von einem Skript oder enem Programm, dem so genannten Präprozessor, vorverarbeiten lassen. Mit einem Präprozessor lassen sich die zu indizierenden Dokumente beispielsweise um Informationen erweitern, die nicht in den Versionen oder den Dateien gespeichert sind. Die Vorverarbeitung ist auch hilfreich, wenn Dokumente umkodiert werden müssen, weil ihr Format nicht UTF-8 ist.

Der Search Engine Server sendet die zu indizierenden Dokumente unmodifiziert zum Präprozessor, d.h. das Skript oder Programm erhält den ursprünglichen Indizierungs-Request. Nachdem der Präprozessor die Daten verarbeitet hat, sendet er sie zurück zum Search Engine Server, der sie an das Autonomy-Suchmodul zum Zwecke der Indizierung weitergibt.

Identifizierung indizierter Versionen

Das Suchmaschinenmodul ordnet einem Dokument bei der Indizierung einen eindeutigen Bezeichner – eine Dokument-ID – zu. Diese ID wird als Feld im Suchindex gespeichert und bei einer Suche im Suchergebnis zurückgegeben. Die IDs werden dem Such-Modul vom Search Engine Server übergeben, der sie wiederum vom jeweiligen Client erhält. Es ist also der Client, der darüber entscheidet, welches CMS-Datei- oder Versionsfeld als Dokument-ID verwendet werden soll.

Während der Content Management Server als Dokument-Identifikatoren Versions-IDs verwendet, handelt es sich bei der Template Engine um Datei-IDs. Daher entspricht auf dem Redaktionssystem die ID eines indizierten Dokuments einer Versions-ID, während auf dem Live-System die Dokument-ID eine Datei-ID ist.

Die Dokument-ID ermöglicht es einem Client (etwa der Benutzeroberfäche des Redaktionssystems, oder der Template Engine), zusätzliche Informationen über das Dokument zu ermitteln. Zusätzlich zu dieser ID werden auch andere wichtige Inhalte voreingestellt als Dokumentfelder indiziert, die Pfade der CMS-Dateien und die Titel der betreffenden Dateiversionen. Diese Informationen kann ein Client aus den Suchergebnissen extrahieren, um auf den Suchergebnisseiten die Titel der gefundenen Dokumente mit den entsprechenden Webseiten zu verlinken.