Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Sie können einen Volltextindex konfigurieren, um eigenschaftsbezogene Suchen in bestimmten Eigenschaften wie Autor und Titel für unterstützte Dokumenttypen in einer binären Datenspalte vom Typ varbinary(max) (einschließlich FILESTREAM) oder image zu unterstützen. Ohne diese Konfiguration führen Volltextabfragen generische Suchvorgänge im gesamten Dokument durch, ohne Eigenschaftsinhalt vom Hauptteil zu unterscheiden. Diese Form der auf Eigenschaften beschränkten Suche wird als Eigenschaftensuche bezeichnet.

Der zugeordnete Filter (IFilter) bestimmt, ob die Eigenschaftensuche für einen bestimmten Dokumenttyp möglich ist. Bei einigen Dokumenttypen extrahiert der zugeordnete IFilter einige oder alle für diesen Dokumenttyp definierten Eigenschaften und den Inhalt des Dokumenttextes. Sie können einen Volltextindex konfigurieren, um Eigenschaftensuchen nur für Eigenschaften zu unterstützen, die während der Volltextindizierung von einem IFilter extrahiert werden. Zu den IFiltern, die eine Reihe von Dokumenteigenschaften extrahieren, gehören die IFilter für Microsoft Office-Dokumenttypen (wie .docx, .xlsx, und .pptx). Andererseits liefert der XML-IFilter keine Eigenschaften aus.

Wie funktioniert Full-Text Search mit Sucheigenschaften

Full-Text Search unterstützt die Immobiliensuche, indem jeder registrierten Immobilie eine interne Property-ID zugewiesen und diese IDs im Volltextindex gespeichert werden.

Interne Eigenschafts-IDs

Die Volltext-Engine weist jeder registrierten Eigenschaft nach dem Zufallsprinzip eine interne Eigenschaften-ID zu, die die Eigenschaft in der betreffenden Suchliste eindeutig identifiziert und die für diese Sucheigenschaftenliste spezifisch ist. Wenn also eine Eigenschaft mehreren Sucheigenschaftenlisten hinzugefügt wird, weist sie für die einzelnen Listen wahrscheinlich unterschiedliche interne Eigenschaften-IDs auf.

Wenn eine Eigenschaft für eine Suchliste registriert wird, weist die Volltext-Engine der Eigenschaft nach dem Zufallsprinzip eine interne Eigenschaften-ID zu. Die interne Eigenschaften-ID ist eine ganze Zahl, die die Eigenschaft in dieser Sucheigenschaftenliste eindeutig identifiziert.

Die folgende Abbildung zeigt eine logische Sicht einer Sucheigenschaftenliste, in der zwei Eigenschaften (Title und Keywords) angegeben werden. Der Name der Eigenschaftsliste für Schlüsselwörter ist Tags. Diese Eigenschaften gehören zur gleichen Eigenschaftsmenge, deren GUID ist f29f85e0-4ff9-1068-ab91-08002b27b3d9. Die ganzzahligen Eigenschaftsbezeichner sind 2 für Title und 5 für Tags (Keywords). Das Volltextmodul ordnet jeder Eigenschaft nach eigenem Ermessen eine interne Eigenschafts-ID zu, die innerhalb der Liste der Sucheigenschaften eindeutig ist. Die interne Eigenschaften-ID für die Title-Eigenschaft ist 1, und die interne Eigenschaften-ID für die Tags-Eigenschaft ist 2.

Screenshot der Zuordnung der Liste der Sucheigenschaften zu einer internen Tabelle.

Die interne Eigenschaften-ID unterscheidet sich wahrscheinlich vom ganzzahligen Eigenschaftsbezeichner der Eigenschaft. Wenn eine bestimmte Eigenschaft für mehrere Sucheigenschaftenlisten registriert wird, kann für jede Sucheigenschaftenliste eine andere interne Eigenschaften-ID zugewiesen werden. Die interne Eigenschaften-ID kann z. B. in einer Sucheigenschaftenliste 4 sein, in einer anderen 1, in der nächsten 3 usw. Im Gegensatz dazu ist der ganzzahlige Eigenschaftsbezeichner für die Eigenschaft intern, und er bleibt unverändert, egal, an welcher Stelle die Eigenschaft verwendet wird.

Index der eingetragenen Immobilien

Nachdem ein Volltextindex einer Sucheigenschaftenliste zugeordnet wurde, muss der Index neu aufgefüllt werden, damit eigenschaftenspezifische Suchbegriffe indiziert werden können. Während der Volltextindizierung wird der Inhalt aller Eigenschaften zusammen mit anderem Inhalt im Volltextindex gespeichert. Wenn jedoch ein Suchbegriff aus einer registrierten Eigenschaft indiziert wird, speichert die Volltextindizierung zusammen mit dem Begriff auch die entsprechende interne Eigenschaften-ID. Im Gegensatz dazu wird eine Eigenschaft, die nicht registriert ist, im Volltextindex gespeichert, als wäre sie Teil des Dokumentenkörpers, und sie hat den Wert null für die interne Eigenschafts-ID.

Die folgende Abbildung veranschaulicht eine logische Sicht der Suchbegriffe in einem Volltextindex, der der in der vorherigen Abbildung enthaltenen Sucheigenschaftenliste zugeordnet ist. Ein Beispieldokument, Dokument 1, enthält drei Eigenschaften (Titel, Autor und Schlüsselwörter) sowie den Dokumentenkörper. Für die Title-Eigenschaft und die Keywords-Eigenschaft, die in der Sucheigenschaftenliste angegeben werden, sind Suchbegriffe ihren entsprechenden internen Eigenschaften-IDs im Volltextindex zugeordnet. Im Gegensatz dazu wird der Inhalt der Author-Eigenschaft wie ein Teil des Dokumenttexts indiziert. Dies bedeutet, dass die Größe des Volltextindex beim Registrieren einer Eigenschaft etwas zunimmt, entsprechend der Menge des in der Eigenschaft gespeicherten Inhalts.

Screenshot eines Volltext-Indexes, der eine Sucheigenschaftsliste verwendet.

Suchbegriffe in der Eigenschaft Titel (Favorite, Biking und Trails) sind der internen Eigenschafts-ID 1 zugeordnet, die für Titel in diesem Index vergeben wurde. Suchbegriffe in der Keywords-Eigenschaft (biking und mountain) sind mit der internen Eigenschafts-ID verknüpft, die den Tags für diesen Index zugewiesen ist, 2. Für Suchbegriffe in der Autor-Eigenschaft (Jane und Doe) und Suchbegriffe im Dokumenttext ist die interne Eigenschafts-ID 0. Der Begriff biking kommt in der Title-Eigenschaft, in der Keywords (Tags)-Eigenschaft und im Dokumententext vor. Eine Eigenschaftssuche nach biking in der Eigenschaft „Titel“ oder „Schlüsselwörter (Tags)“ würde dieses Dokument in den Suchergebnissen zurückgeben. Eine generische Volltextabfrage für biking würde dieses Dokument ebenfalls zurückgeben, als wäre der Index nicht für die Eigenschaftssuche konfiguriert. Eine Suche nach biking in der Eigenschaft „Autor“ würde dieses Dokument nicht zurückgeben.

Eine eigenschaftsbezogene Volltextabfrage verwendet die internen Eigenschaften-IDs, die für die aktuelle Liste der Sucheigenschaften des Volltextindex registriert sind.

Auswirkungen der Ermöglichung der Immobiliensuche

Das Konfigurieren einen Volltextindex für die Unterstützung der Suche nach einer oder mehreren Eigenschaften führt zu einem leichten Größenzuwachs des Index, entsprechend der in der Sucheigenschaftenliste angegebenen Anzahl von Eigenschaften und dem Inhalt der einzelnen Eigenschaften.

Beim Testen typischer Korpus von Microsoft Word, Excel und PowerPoint wurde ein Volltextindex konfiguriert, der typische Sucheigenschaften indexiert. Die Indexierung dieser Eigenschaften erhöhte die Größe des Volltextindex um etwa 5 Prozent. Diese ungefähre Größenerhöhung ist wahrscheinlich typisch für die meisten Dokumentenkorpus. Letztlich hängt die Größenerhöhung jedoch von der Menge an Eigenschaftsdaten in einem gegebenen Dokumentkorpus im Verhältnis zur Gesamtmenge der Daten ab.

Um die Eigenschaftssuche zu ermöglichen, erstellen Sie eine Sucheigenschaftsliste, fügen Sie eine oder mehrere Eigenschaften hinzu und ordnen Sie die Liste dann einem Volltextindex zu.

Erstellen Sie eine Eigenschaftsliste für die Suche

Erstellen Sie eine Sucheigenschaftsliste entweder mit Transact-SQL oder SQL Server Management Studio.

Erstellen Sie eine Sucheigenschaftsliste in Transact-SQL

Verwenden Sie die CREATE SEARCH PROPERTY LIST Aussage und geben Sie zumindest einen Namen für die Liste an.

Erstellen Sie eine Sucheigenschaftsliste in SQL Server Management Studio

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken, und erweitern Sie dann die Datenbank, in der die Sucheigenschaftenliste erstellt werden soll.

  3. Erweitern Sie Speicher, und klicken Sie dann mit der rechten Maustaste auf Eigenschaftslisten für die Suche.

  4. Wählen Sie Neue Liste der Sucheigenschaften aus.

  5. Geben Sie den Namen der Eigenschaftenliste an.

  6. Sie können optional eine andere Person als Eigentümer der Eigenschaftsliste angeben.

  7. Wählen Sie eine der folgenden Optionen aus:

    • Erstellen einer leeren Sucheigenschaftenliste

    • Von einer vorhandenen Sucheigenschaftenliste erstellen

    Weitere Informationen finden Sie unter CREATE SEARCH PROPERTY LIST.

  8. Wählen Sie OK aus.

Fügen Sie Eigenschaften zu einer Liste von Sucheigenschaften hinzu

Für die Eigenschaftensuche muss eine Sucheigenschaftenliste erstellt werden. Zudem muss mindestens eine Eigenschaft angegeben werden, die als durchsuchbar festgelegt werden soll. Wenn Sie einer Liste von Sucheigenschaften eine Eigenschaft hinzufügen, wird die Eigenschaft für die betreffende Liste registriert. Wenn Sie einer Sucheigenschaftenliste eine Eigenschaft hinzufügen möchten, benötigen Sie die folgenden Werte:

  • Eigenschaftensatz-GUID

    Jede Sucheigenschaft gehört zu einzigen Eigenschaftensatz, der eine Gruppe verwandter Eigenschaften enthält. Jeder Eigenschaftensatz wird von einem Globally Unique Identifier (GUID) identifiziert.

  • Ganzzahliger Eigenschaftsbezeichner

    Jede Sucheigenschaft besitzt einen Bezeichner, der innerhalb des Eigenschaftensatzes eindeutig ist. Der Bezeichner für eine bestimmte Eigenschaft kann entweder eine ganze Zahl oder eine Zeichenfolge sein. Die Volltextsuche unterstützt jedoch nur ganzzahlige Bezeichner.

  • Eigenschaftenname

    Dies ist der Name, den Benutzende in Volltextabfragen angeben, um nach der Eigenschaft zu suchen. Eigenschaftsnamen können interne Leerzeichen enthalten. Die maximale Länge beträgt 256 Zeichen.

    Der Eigenschaftsname kann einer der folgenden sein:

    • Der Windows-kanonische Name der Immobilie, wie System.Author oder System.Contact.HomeAddress.

    • Ein benutzerfreundlicher Name, den sich Benutzer leicht einprägen können. Einige Eigenschaften sind einem bekannten benutzerfreundlichen Namen zugeordnet (z. B. "Autor" oder "Privatadresse"), Sie können jedoch einen beliebigen Namen angeben, der für die Benutzer am besten geeignet ist.

    Hinweis

    Eine bestimmte Kombination von Eigenschaftensatz-GUID und Eigenschaftsbezeichner muss in einer Sucheigenschaftenliste eindeutig sein. Das bedeutet, dass du dieselbe Eigenschaft nicht mehrmals mit unterschiedlichen Namen oder Beschreibungen hinzufügen kannst.

  • Eigenschaftenbeschreibung (optional)

    Wenn Sie einer Sucheigenschaftenliste eine Sucheigenschaft hinzufügen, können Sie eine optionale Beschreibung angeben. Sie können z. B. Informationen zu einer Eigenschaft angeben, die aus ihrem Namen nicht abgeleitet werden können, oder Sie können den Eigenschaftensatz der Eigenschaft beschreiben.

Werte für eine Liste von Sucheigenschaften erhalten

Siehe Suchen von Eigenschaftensatz-GUIDs und ganzzahligen Eigenschaft-IDs für Sucheigenschaften.

Fügen Sie eine Eigenschaft in eine Suchobjektliste in Transact-SQL

Verwenden Sie die ALTER SEARCH PROPERTY LIST Anweisung mit den Werten, die Sie mithilfe einer der im Artikel Suchen von Eigenschaftensatz-GUIDs und ganzzahligen Eigenschaft-IDs für Sucheigenschaften beschriebenen Methoden ermittelt haben,.

Das folgende Beispiel veranschaulicht die Verwendung dieser Werte beim Hinzufügen einer Eigenschaft zu einer Sucheigenschaftenliste:

ALTER SEARCH PROPERTY LIST DocumentTablePropertyList
ADD 'Title' WITH (
    PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9',
    PROPERTY_INT_ID = 2,
    PROPERTY_DESCRIPTION = 'System.Title - Title of the item.'
);

Fügen Sie einer Sucheigenschaftsliste in SQL Server Management Studio eine Eigenschaft hinzu

Verwenden Sie das Dialogfeld Eigenschaften der Such-Eigenschaftsliste, um Sucheigenschaften hinzuzufügen und zu entfernen. Sie finden Such-Eigenschaftslisten im Objekt-Explorer unter dem Knoten Speicher der zugehörigen Datenbank.

Verknüpfen Sie eine Sucheigenschaftsliste mit einem Volltextindex

Damit ein Volltextindex die Eigenschaftensuche für die in einer Sucheigenschaftenliste registrierten Eigenschaften unterstützt, müssen Sie dem Index die Sucheigenschaftenliste zuordnen und den Index neu auffüllen. Durch das erneute Auffüllen des Volltextindexes werden eigenschaftenspezifische Indexeinträge für Suchbegriffe in den einzelnen registrierten Eigenschaften erstellt.

Solange der Volltextindex mit dieser Sucheigenschaftsliste verknüpft bleibt, kann eine Volltextanfrage die PROPERTY Option des CONTAINS Prädikats nutzen, um auf Eigenschaften zu suchen, die für diese Sucheigenschaftsliste registriert sind.

Wenn Sie die zugeordnete Sucheigenschaftenliste eines Volltextindexes ändern, muss der Index neu erstellt werden, um die Konsistenz herzustellen. Bis eine vollständige Auffüllung ausgeführt wird, wird der Index sofort abgeschnitten, und er ist leer. Für weitere Informationen darüber, wann eine Änderung der Sucheigenschaftsliste den Wiederaufbau des Index verursacht, siehe "Bemerkungen" in ALTER FULLTEXT INDEX.

Verknüpfen Sie eine Sucheigenschaftsliste mit einem Volltextindex in Transact-SQL

Verwenden Sie die ALTER FULLTEXT INDEX-Anweisung mit der SET SEARCH PROPERTY LIST = <property_list_name>-Klausel.

Verknüpfen Sie eine Sucheigenschaftsliste mit einem Volltextindex in SQL Server Management Studio

Geben Sie auf der Seite Allgemein des Dialogfelds Volltextindex-Eigenschaften einen Wert für Sucheigenschaftenliste an.

Eigenschaften der Suche mit CONTAINS abfragen

Die CONTAINS -Basissyntax für eine Volltextabfrage mit Eigenschaftenbereich lautet wie folgt:

SELECT column_name
FROM table_name
WHERE CONTAINS (PROPERTY(column_name, 'property_name'), '<contains_search_condition>');

Die folgende Abfrage sucht z. B. nach einer indizierten Eigenschaft Titlein der Document -Spalte der Production.Document -Tabelle der AdventureWorks -Datenbank. Die Abfrage gibt nur Dokumente zurück, deren Title-Eigenschaft die Zeichenfolge Maintenance oder Repair enthält.

USE AdventureWorks2025;
GO

SELECT Document
FROM Production.Document
WHERE CONTAINS (PROPERTY(Document, 'Title'), 'Maintenance OR Repair');
GO

Dieses Beispiel setzt voraus, dass der IFilter für das Dokument die Title-Eigenschaft extrahiert, die Title-Eigenschaft der Sucheigenschaftenliste hinzugefügt wurde und die Sucheigenschaftenliste dem Volltextindex zugeordnet ist.

Listen der Sucheigenschaften verwalten

Nachdem Sie eine Liste der Sucheigenschaften erstellt haben, können Sie sie ansehen, ändern oder löschen.

Eine Liste der Sucheigenschaften anzeigen und ändern

Sehen Sie sich eine Sucheigenschaftsliste an und ändern Sie sie entweder mit Transact-SQL oder SQL Server Management Studio.

Anzeigen und Ändern einer Such-Eigenschaftsliste in Transact-SQL

Verwenden Sie die Anweisung ALTER SEARCH PROPERTY LIST , um Sucheigenschaften hinzuzufügen oder zu entfernen.

Eine Sucheigenschaftsliste im SQL Server Management Studio ansehen und ändern

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken und dann die Datenbank.

  3. Erweitern Sie Speicher.

  4. Erweitern Sie Such-Eigenschaftslisten, um die Such-Eigenschaftslisten anzuzeigen.

  5. Klicken Sie mit der rechten Maustaste auf die Eigenschaftenliste, und wählen Sie Eigenschaftenaus.

  6. Im Dialogfeld Sucheigenschaftenlisten-Editor können Sie über das Raster Eigenschaften Sucheigenschaften hinzufügen und entfernen:

    1. Um eine Dokumenteigenschaft zu entfernen, wählen Sie den Zeilenkopf links neben der Eigenschaft und drücken Sie DEL.
  7. Um eine Dokumenteigenschaft hinzuzufügen, wählen Sie die leere Zeile unten in der Liste rechts neben dem * aus und geben Sie die Werte für die neue Eigenschaft ein.

    Weitere Informationen zu diesen Werten finden Sie unter Sucheigenschaftenlisten-Editor. Informationen dazu, wie diese Werte für von Microsoft definierte Eigenschaften abgerufen werden, finden Sie unter GUIDs für Eigenschaftensätze und ganzzahlige Eigenschafts-IDs für Sucheigenschaften ermitteln. Weitere Informationen zu Eigenschaften, die von einem unabhängigen Softwareanbieter (ISV) definiert wurden, finden Sie in der Dokumentation des betreffenden Anbieters.

  8. Wählen Sie OK aus.

Eine Liste von Sucheigenschaften löschen

Man kann eine Eigenschaftsliste nicht aus einer Datenbank entfernen, solange die Liste mit einem Volltextindex verknüpft ist.

Löschen Sie eine Sucheigenschaftsliste in Transact-SQL

Verwenden Sie die DROP SEARCH PROPERTY LIST Anweisung.

Löschen Sie eine Sucheigenschaftsliste in SQL Server Management Studio

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken und dann die Datenbank.

  3. Erweitern Sie Speicher, und erweitern Sie dann den Knoten Listen mit Sucheigenschaften.

  4. Klicken Sie mit der rechten Maustaste auf die Eigenschaftsliste, die Sie löschen möchten, und wählen Sie Löschen.

  5. Wählen Sie OK aus.