Architektur der Volltextsuche

Die Volltextsuche wurde im Volltextmodul implementiert. Das Volltextsuchmodul erfüllt zwei Funktionen: Unterstützung der Indizierung und Unterstützung von Abfragen.

Beginnend mit SQL Server 2008 besteht die Architektur der Volltextsuche aus den folgenden Prozessen:

  • Dem SQL Server-Prozess (sqlservr.exe)

    HinweisHinweis

    Der MSFTESQL-Dienst ist in SQL Server 2008 und höheren Versionen nicht vorhanden. Tasks im Zusammenhang mit der Volltextsuche, die in SQL Server 2005 und früheren Versionen vom MSFTESQL-Dienst ausgeführt wurden, werden nun vom SQL Server-Prozess ausgeführt.

  • Dem Filterdaemon-Hostprozess (fdhost.exe)

    Aus Sicherheitsgründen werden Filter ab SQL Server 2008 von separaten Prozessen geladen, die als Filterdaemonhosts bezeichnet werden. Eine Serverinstanz verwendet einen Multithreadprozess für alle Multithreadfilter und einen Singlethreadprozess für alle Filter mit einem einzigen Thread.

    HinweisHinweis

    fdhost.exe ersetzt den Volltextmodul-Filterdaemon (msftefd.exe), der in SQL Server 2005 und früheren Versionen enthalten war.

    Die fdhost.exe-Prozesse werden von einem FDHOST-Startprogrammdienst (MSSQLFDLauncher) erstellt und unter den Anmeldeinformationen des Dienstkontos für den FDHOST-Startprogrammdienst ausgeführt. Daher stehen Volltextindizierung und Volltextabfragen nur zur Verfügung, wenn dieser Dienst ausgeführt wird. Informationen zum Festlegen des Dienstkontos für diesen Dienst finden Sie unter Vorgehensweise: Festlegen des Dienstkontos für das FDHOST-Startprogramm (MSSQLFDLauncher) für die Volltextsuche (SQL Server-Konfigurations-Manager).

Diese Prozesse enthalten die Komponenten, aus denen die Architektur der Volltextsuche besteht. Die Komponenten und ihre Beziehungen sind in der folgenden Abbildung zusammengefasst. Auf die Abbildung folgt eine Beschreibung der Komponenten.

Architektur der Volltextsuche

SQL Server-Prozess

Bei der Volltextsuche werden die folgenden Komponenten des SQL Server-Prozesses verwendet:

  • Benutzertabellen

    Diese Tabellen enthalten die Daten, für die ein Volltextindex erstellt werden soll.

  • Volltext-Gatherer

    Der Volltext-Gatherer verwendet die Volltextcrawlthreads. Er ist für das Planen und Antreiben der Auffüllung von Volltextindizes sowie für das Überwachen von Volltextkatalogen verantwortlich.

    HinweisHinweis

    Ab SQL Server 2008 stellt ein Volltextkatalog ein virtuelles Objekt dar, das keiner Dateigruppe angehört. Ein Volltextkatalog ist ein logisches Konzept, das für eine Gruppe von Volltextindizes steht.

  • Thesaurusdateien

    Diese Dateien enthalten Synonyme von Suchbegriffen. Weitere Informationen finden Sie unter Thesauruskonfiguration.

  • Stopplistenobjekte

    Stopplistenobjekte enthalten eine Liste häufig auftretender Wörter, die nicht nützlich für die Suche sind. Weitere Informationen finden Sie unter Stoppwörter und Stopplisten.

    HinweisHinweis

    Stopplistenobjekte treten an die Stelle der Füllwortdateien von SQL Server 2005 und früheren Versionen.

  • SQL Server-Abfrageprozessor

    Der Abfrageprozessor kompiliert SQL-Abfragen und führt diese aus. Wenn eine SQL-Abfrage eine Volltextsuchabfrage enthält, wird die Abfrage sowohl während der Kompilierung als auch während der Ausführung an das Volltextsuchmodul gesendet. Das Abfrageergebnis wird mit dem Volltextindex verglichen. Weitere Informationen finden Sie unter Volltextmodul.

  • Volltextmodul

    Das Volltextsuchmodul in SQL Server ist jetzt vollständig in den Abfrageprozessor integriert. Das Volltextsuchmodul kompiliert Volltextabfragen und führt diese aus. Im Rahmen der Abfrageausführung empfängt das Volltextsuchmodul möglicherweise Eingaben vom Thesaurus und von der Stoppliste. In SQL Server 2008 und höheren Versionen wird das Volltextsuchmodul für SQL Server im SQL Server-Abfrageprozessor ausgeführt.

  • Indexschreiber (Indexer)

    Der Indexschreiber erstellt die Struktur, die zum Speichern der indizierten Token verwendet wird.

  • Filterdaemon-Manager

    Der Filterdaemon-Manager ist für die Überwachung des Status des Filterdaemonhosts des Volltextsuchmoduls verantwortlich.

Filterdaemonhost

Der Filterdaemonhost ist ein Prozess, der vom Volltextsuchmodul gestartet wird. Er führt die folgenden Komponenten der Volltextsuche aus, die für den Zugriff auf, die Filterung von und die Wörtertrennung für Daten aus Tabellen sowie für die Wörtertrennung und Wortstammerkennung für Abfrageeingaben verantwortlich sind:

Der Filterdaemonhost umfasst die folgenden Komponenten:

  • Protokollhandler

    Diese Komponente ruft die Daten aus dem Arbeitsspeicher zur weiteren Verarbeitung ab und greift auf Daten aus einer Benutzertabelle in einer angegebenen Datenbank zu. Eine ihrer Aufgaben ist das Sammeln von Daten aus den Spalten, für die ein Volltextindex erstellt wird, und die Weitergabe der Daten an den Filterdaemonhost, der nach Bedarf Filter und Wörtertrennungen anwendet. .

  • Filter

    Bei einigen Datentypen ist eine Filterung der Daten erforderlich, bevor die Daten in einem Dokument volltextindiziert werden können. Dies betrifft z. B. Daten in Spalten vom Typ varbinary, varbinary(max), image oder xml. Welcher Filter für ein bestimmtes Dokument verwendet wird, ist abhängig vom Dokumenttyp. Beispielsweise werden unterschiedliche Filter für Microsoft Word-Dokumente (Erweiterung .doc), Microsoft Excel-Dokumente (Erweiterung .xls) und XML-Dokumente (Erweiterung .xml) verwendet. Der Filter extrahiert daraufhin die einzelnen Textabschnitte aus dem Dokument, entfernt eingebettete Formatierungen und behält nur den Text und ggf. Informationen über die jeweilige Textposition bei. Das Ergebnis ist ein Strom mit den Textinformationen. Weitere Informationen finden Sie unter Filter für die Volltextsuche.

  • Wörtertrennung und Wortstammerkennung

    Eine Wörtertrennung ist eine sprachspezifische Komponente, die Wortgrenzen anhand der lexikalischen Regeln einer Sprache findet (Wörtertrennung). Jede Wörtertrennung ist einer sprachspezifischen Komponente für die Wortstammerkennung zugeordnet, die Verben konjugiert und Flexionsformen für Wörter liefert. Während der Indizierung verwendet der Filterdaemonhost eine Wörtertrennung und eine Wortstammerkennung, um eine linguistische Analyse der Textdaten aus einer bestimmten Tabellenspalte durchzuführen. Die Sprache, die einer Tabellenspalte im Volltextindex zugeordnet ist, legt fest, welche Wörtertrennung und Wortstammerkennung für die Spaltenindizierung verwendet wird. Weitere Informationen finden Sie unter Wörtertrennung und Wortstammerkennung.

    HinweisHinweis

    Informationen zu allen linguistischen Komponenten der Volltextsuche finden Sie unter Konfigurieren der linguistischen Komponenten für die Volltextsuche.