Eine Indizierungsanfrage wird mit dem ses-indexDoc-Element
in einem ses-request-Element kodiert. Es folgt ein Beispiel,
das gleichzeitig zeigt, dass sich mehrere Requests in einem Payload
befinden können:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ses-payload SYSTEM "https://www.example.com/ses.dtd"> <ses-payload payload-id="B42TE241" timestamp="20100825172100" version="2.1"> <ses-header> <ses-sender sender-id="FX45RTDT" name="CM-Server"/> <ses-authentication login="cm-server" password=""/> </ses-header> <ses-request request-id="BR12TI5X"> <ses-indexDoc docId="4712" collection="collection1" mimeType="application/ms-word" usesStreaming="YES"> <title encoding="plain">testdoc1</title> <customAttribute encoding="base64">MGHX2c5=</customAttribute> <blob encoding="stream">d--1157180779-000000001-X</blob> </ses-indexDoc> </ses-request> <ses-request request-id="BR12TI5Y"> <ses-indexDoc docId="4713" collection="collection2"> <title encoding="plain">testdoc2</title> ... <blob>Just the blob</blob> </ses-indexDoc> </ses-request></ses-payload>
Das ses-indexDoc-Element hat die folgenden Attribute:
docId
Die ID des zu indizierenden Dokuments. Dies ist üblicherweise die Versions-ID (Content Management Server) oder die Datei-ID (Template Engine).collection
Der Name der Collection, zu der das zu indizierende Dokument hinzugefügt werden soll.mimeTypeDer MIME-Typ des zu indizierenden Dokuments. Anhand des MIME-Typs entscheidet der Search Engine Server, mit welchem Präprozessor das Dokument vorverarbeitet werden soll (siehe Suche und Indizierung konfigurieren).
usesStreaming, wenn mindestens eines der zu indizierenden Felder über das Streaming-Interface zum Search Engine Server übertragen wurde, andernfalls
YESNO.
Das ses-indexDoc-Element enthält als Unterelemente alle in
Abschnitt Content-Indizierung
aufgeführten Attribute, von denen in das obige Beispiel exemplarisch nur
title, das kundenspezifische Attribut
customAttribute und blob aufgenommen wurden. Wie
die Inhalte der zu indizierenden Datei- und Versionsfelder kodiert sind,
wird mit dem Tag-Attribut encoding in den jeweiligen
Attribut-Tags angegeben. encoding kann einen der drei
folgenden Werte haben:
plain
Der Wert des zu indizierenden Attributs ist nicht kodiert und direkt als Wert des Elements angegeben. Dies ist die Voreinstellung.base64
Der Wert des Attributs ist base64-kodiert.streamDer Wert des Attributs ist ein Streaming-Ticket. Das Ticket verweist auf einen Inhalt, den der Client zuvor über das Streaming-Interface dem Search Engine Server übermittelt hat (siehe die unten folgende Erläuterung).
Wenn ein Feldwert base64-kodiert ist oder über das Streaming-Interface
zum Search Engine Server übertragen wurde, so muss für den MIME-Typ des
Dokuments ein Präprozessor konfiguriert sein, der den Inhalt des Attributs
in reinen Text umwandelt und den Wert von encoding auf
plain setzt.
Streaming
Ein Client hat die Möglichkeit, die Werte von Feldern separat an den Search Engine Server zu übertragen, bevor er ihm einen Indizierungsrequest sendet. Dieses Verfahren ist insbesondere bei größeren binären Datenmengen zu empfehlen, weil es performanter ist, als diese Daten base64-kodiert in den Request aufzunehmen.
Ein Client verwendet das so genannte Streaming-Interface, um solche Daten zum Search Engine Server zu übertragen. Das Streaming-Interface wird mit einem POST-Request zum HTTP-Port des Search Engine Servers unter Angabe der URL /stream angesprochen. Nachdem die Daten übertragen wurden, erhält der Client als Antwort ein Streaming-Ticket, das er im darauf folgenden Indizierungsrequest in der oben beschriebenen Weise angibt, um die Daten zu referenzieren.
Der Content Management Server überträgt die Inhalte von Dateien des Typs
Ressource über das Streaming-Interface zum Search Engine Server.
Auch der Hauptinhalt von Dateien des Typs Ordner,
Dokument und Layout wird dem Search Engine Server auf
diese Weise übergeben, wenn der Hauptinhalt größer als 8 KB ist. Bis auf
Dateien vom Typ Layout gilt dies auch für die Template Engine (die
Template Engine lässt Layoutdateien nicht indizieren). Der Mindestumfang
der Daten, die per Streaming übertragen werden sollen, kann in der
Systemkonfiguration des Content Managers und der Template Engine mit dem
Eintrag minStreamingDataLength konfiguriert werden.