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 "http://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
collection
mimeType
Der 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
YES
, wenn mindestens eines der
zu indizierenden Felder über das Streaming-Interface zum Search Engine
Server übertragen wurde, andernfalls NO
.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
base64
stream
Der 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.
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.