Inhaltsverzeichnis / Illustra und das PLS Text DataBlade / OpenText Livelink Intranet

Fulcrum SearchServer 3.5

1 Überblick

Die Produkte der Fulcrum SearchServer-Familie werden als Werkzeuge zur effizienten Entwicklung von Applikationen mit Text-Retrieval-Funktionalität vorgestellt. Neben dem SearchServer Administrator, dem SearchBuilder (graphische Entwicklungstools für MS Windows), SearchBuilder for Java und dem SearchServer SDK (C/C++-Entwicklungswerkzeuge auch für nicht-Windows Plattformen) ist der Fulcrum SearchServer, eine Indexierungs- und Retrievalmaschine, das zentrale Element dieser Tools. Prinzipiell wird davon ausgegangen, daß die zu indexierenden und durchsuchenden Dokumente nicht extra vom SearchServer abgespeichert werden. Der Zugriff auf den Dokumententext geschieht dynamisch durch sogenannte Text Reader.
Die hier vorgestellte Version des SearchServers ist eine Weiterentwicklung des Fulcrum SearchServers 2.0, der für das MeDoc-Projekt evaluiert wurde [MTP2].

2 Datenmodell

Der SearchServer verwendet ähnlich relationalen Datenbanken Tabellen, in denen Informationen über Dokumente gespeichert werden (base tables). Neben den vom System verwendeten Tabellenspalten, können auch benutzerdefinierte Spalten (Attribute) mit anderen Informationen über das Dokument angelegt werden. Die Texte selbst werden offensichtlich nicht in den Tabellen gespeichert, sondern verbleiben in ihrem ursprünglichen Format in der jeweiligen Verzeichnisstruktur, relationalen Datenbank usw. (Ob Dokumente evtl. auch physikalisch in Tabellenspalten von Fulcrum geladen werden können, ist unklar da die genauen Spezifikationen für die Datentypen unklar sind.)
In den Handbüchern wird beschrieben, daß drei verschiedene Klassen von Datentypen (text, date und numeric) existieren, die folgende Daten repräsentieren können: Zusätzlich können über den Textspalten zones definiert werden. Zonen (zone) unterteilen die Spalten nochmals in "virtuelle" Spalten, die einen Datentyp besitzen, indexierbar sind und in Abfragen verwendet werden können. Zonen werden anhand von Kontrollsequenzen identifiziert, die von Text Readern während des Indexierens oder z.B. von Hand in das Originaldokument eingefügt werden. Eine Zone kann z.B. einen speziellen Teil eines Dokumentes (Kapitelname, Titel, Artikeltext) bezeichnen.
Weiterhin besteht die Möglichkeit eigene Datentypen (domain) zu definieren.
Beispiel für das Erzeugen eines Schemas mit einer Tabelle [F2]: Neben den Dateien, die die Daten der Base Tables enthalten, existieren noch sog. table support files (Thesaurus-Datei, Stoppwort-Datei, character variant rules file), Index-Dateien und weitere Dateien, die zur Verwaltung notwendig sind.

3 Text Reader

Text Reader stellen die Schnittstelle des SearchServers zu den Dokumenten dar. Sie werden beim Indexieren und Anzeigen für den Zugriff auf die externen Dokumente benutzt, indem sie die in anderen Formaten existierenden Dokumente dynamisch in Fulcrums Ful/Text Document Format Streams (FTDF Streams) konvertieren, die die Indexierungsmaschine lesen kann. Falls es notwendig ist, lassen sich die Text Reader auch kaskadieren. Der wichtigste Text Reader ist der ftmf (Fulcrum Technologies Multi-Format Text Reader), der die meisten Formate unterstützen soll. Mit den Text Reader existieren Schnittstellen für die wichtigsten Dokumentenformate, wie z.B. Textverarbeitungen und Tabellenkalkulationen, sowie auch database text readers für Sybase, Oracle und MS SQL-Server. Bei Bedarf können allerdings auch eigene Text Reader entwickelt werden (mit Hilfe der text reader API). Mit Hilfe von Text Reader können auch Dokumente, die keine Textinformationen (Bitmaps, Vektorgraphiken, ausführbare Dateien, uuencoded) beinhalten, eingelesen und in Fulcrum-Tabellen mit Attributen verknüpft, jedoch nicht durchsucht werden.
Abbildung 5-1: Der SearchServer und Text Reader

Text Reader sollen auch Struktur- und Dokumenteninformationen (z.B. bei PDF: Titel, Thema, Verfasser, Stichwörter) extrahieren/verarbeiten können, um sie in Tabellenspalten zu sammeln oder um Dokumente in Zonen zu unterteilen. Über die genaue Funktionsweise und die Fähigkeiten ist jedoch nichts bekannt.

4 Indexierung

Der SearchServer unterscheidet zwei Updatemodi für die Indexierung: Dabei bedeutet unmittelbar, daß die Indexierung erfolgt beim Einfügen oder verändern der Daten. Dabei wird ein differentieller Index erzeugt, d.h. der Index wird aus Performancegründen nur aktualisiert und kann später reorganisiert/optimiert werden. Periodisch bedeutet, daß das Indexieren explizit bestimmt wird und vollständig über die zu indexierenden Tabellen erfolgt. Ob eine Tabelle das unmittelbare Indexieren unterstützt wird bei der Erstellung der Tabelle festgelegt.
Díe möglichen Indexierungsmodi werden von der jeweiligen Klasse des Datentyps bestimmt. Der SearchServer unterscheidet folgende Indexierungsmodi: Über den Aufbau der Indexfiles wird in den Handbüchern angegeben, daß jedes Auftreten eines suchbaren Terms in den Index-Files aufgezeichnet wird und damit auch Suchen mit phrase und proximity searching sowie relevance ranking möglich wird.
Die Größe des Index wird bei Tabellen mit immediate indexing mit 20 bis 200% des Textumfangs angegeben (Grund: evtl. Fragmentierungen), bei Tabellen mit anderer Indexierung mit 20 bis 40%.

5 Retrieval

Der SearchServer unterstützt das Boolesche Retrieval, hat aber auch zwei weitere interessante Suchstrategien: Fuzzy Boolean wird als zwischen dem strikten Booleschen Retrieval und Retrieval nach dem vector space model stehend beschrieben. Dabei werden AND und NOT in ihrer Restriktivität abgeschwächt, d.h. die Operatoren werden eher wie OR behandelt, wobei die Relevanz eines Dokumentes bei Nichterfüllung der Bedingungen abgewertet wird.
Intuitive Searching ermöglicht es, "natürlichsprachliche" Anfragen zu stellen und somit Dokumentenvergleiche durchzuführen. Zuerst wird ein sog. "Textvektor" aus der Eingabe erzeugt, um dann später mit diesem die Anfrage an das System zu stellen: "Aus den Termen des Anfragetextes wird eine Menge von Suchtermen generiert. Die Auswahl der Suchterme wird von der Frequenz, mit welcher die Terme im Abfragetext und in den zu durchsuchenden Tabellen vorkommen, beeinflußt, sowie von verschiedenen Gewichtungsfaktoren." [F4]. Ein Beispiel für das Stellen einer "Intuitive-Searching"-Anfrage: Leider waren weitere Informationen zu der genaueren Funktionsweise nicht erhältlich.
Der Fulcrum SearchServer unterstützt die folgenden verschiedenen Rankingverfahren:
 
Inhaltsverzeichnis / Illustra und das PLS Text DataBlade / OpenText Livelink Intranet