Das IIndexerDocument ist das Resultat eines erfolgreichen Indexing-Vorgangs. Letzterens Zweck ist die Auf- und Nachbereitung der Plain-Text-Daten, die der Parser zur Verfügung stellt. Er soll sich um das eventuell nötige Entfernen von Stopwords (möglichst nach erfolgreicher Spracherkennung) und Filtern anderer nicht zu speichernder Inhalte kümmern. Außerdem ist es seine Aufgabe, die Daten aus Crawler-Dokument, Parser-Dokuement und dem umfassenden Command-Objekt in eine Datenstruktur zu überführen, die von allen Datenbanken gleichermaßen oder nur mit geringen Abstrichen gelesen und geschrieben werden kann. Nach dem Indexer folgt (direkt, ohne weitere IFilter?) die DB-Abstraktionsschicht, die sich gar nicht mehr um den eigentlichen Inhalt des indexierten Dokuments kümmern müssen soll. Dafür werden folgende Felder in einem IIndexerDocument benötigt:
Name ist der Name des Feldes und identifiziert den Inhalt (setzt sich vorerst nur aus sprachlichen Gesichtspunkten zusammen, wenn die Hauptfelder geklärt sind, müsste eine genauere Zuordnung von den *Docs/ICommand → Feld, sowie das jeweilige Format (Hashed, Datum wie?, URI mit/ohne Anker, Sub-Dokumente?, etc… erfolgen))Indexed besagt, ob die Spalte / das Feld indexiert und damit für eine schnelle Suche verfügbar gemacht wirdPlain besagt, ob der Inhalt (evtl. zusätzlich) als Plain Text (möglicherweise auch komprimiert) in der Datenbank gespeichert werden soll, evtl. um Snippets anzeigen zu können oder ähnliches| Name | Indexed | Plain |
|---|---|---|
| Text | Ja | Nein |
| URI | Nein | Ja |
| MD5-Summe | Nein | Ja |
| Last-modified | Nein | Ja |