Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
De inhoud van documenteigenschappen was eerder niet te onderscheiden van de inhoud van de hoofdtekst van het document. Deze beperking beperkt query's in volledige tekst tot algemene zoekopdrachten op hele documenten. U kunt nu echter een volledige tekstindex configureren ter ondersteuning van eigenschapsspecifiek zoeken voor bepaalde eigenschappen, zoals Auteur en Titel, voor ondersteunde documenttypen in een varbinaire, varbinary(max) (inclusief FILESTREAM), of image binaire gegevenskolom. Deze vorm van zoeken wordt aangeduid als eigenschappen zoeken.
De gekoppelde filter (IFilter) bepaalt of het zoeken van eigenschappen mogelijk is voor een specifiek type document. Voor sommige documenttypen extraheert het bijbehorende IFilter enkele of alle eigenschappen die zijn gedefinieerd voor dat type document, evenals de inhoud van de hoofdtekst van het document. U kunt een volledige-tekstindex configureren ter ondersteuning van het zoeken van eigenschappen alleen op eigenschappen die door een IFilter worden geëxtraheerd tijdens het indexeren van volledige tekst. IFilters die een aantal documenteigenschappen extraheren, zijn de IFilters voor Microsoft Office-documenttypen (zoals .docx, .xlsxen .pptx). Aan de andere kant verzendt het XML IFilter geen eigenschappen.
Hoe Full-Text zoeken werkt met zoekeigenschappen
Interne eigenschap-id's
De Full-Text Engine wijst elke geregistreerde eigenschap willekeurig een interne eigenschaps-id toe, waarmee de eigenschap in die specifieke zoeklijst uniek wordt geïdentificeerd en die specifiek is voor die lijst met zoekeigenschappen. Als een eigenschap wordt toegevoegd aan meerdere lijsten met zoekeigenschappen, zal de interne eigenschaps-id waarschijnlijk verschillen tussen verschillende lijsten.
Wanneer een eigenschap is geregistreerd voor een zoeklijst, wijst de Full-Text Engine willekeurig een interne eigenschaps-id toe aan de eigenschap. De interne eigenschaps-id is een geheel getal dat de eigenschap in die lijst met zoekeigenschappen uniek identificeert.
In de volgende afbeelding ziet u een logische weergave van een lijst met zoekeigenschappen waarmee twee eigenschappen, Titel en Trefwoorden worden opgegeven. De naam van de eigenschappenlijst voor trefwoorden is 'Tags'. Deze eigenschappen behoren tot dezelfde eigenschappenset, waarvan de GUID is F29F85E0-4FF9-1068-AB91-08002B27B3D9. De eigenschap geheel getal-identificatoren zijn 2 voor Titel en 5 voor Tags (Trefwoorden). De Full-Text Engine wijst elke eigenschap willekeurig toe aan een interne eigenschaps-id die uniek is voor de lijst met zoekeigenschappen. De interne eigenschaps-id voor de eigenschap Titel is 1 en de interne eigenschaps-id voor de eigenschap Tags is 2.
De interne eigenschaps-id is waarschijnlijk anders dan de gehele getal-id van de eigenschap. Als een bepaalde eigenschap is geregistreerd voor meerdere lijsten met zoekeigenschappen, kan er een andere interne eigenschaps-id worden toegewezen voor elke lijst met zoekeigenschappen. De interne eigenschaps-id kan bijvoorbeeld 4 zijn in de ene lijst met zoekeigenschappen, 1 in een andere, 3 in een andere, enzovoort. De geheel getal-identificatie van de eigenschap is daarentegen intrinsiek aan de eigenschap en blijft hetzelfde, ongeacht waar de eigenschap wordt gebruikt.
Indexering van geregistreerde eigenschappen
Nadat een volledige-tekstindex is gekoppeld aan een lijst met zoekeigenschappen, moet de index opnieuw worden ingevuld om eigenschappenspecifieke zoektermen te indexeren. Tijdens het indexeren van volledige tekst worden de inhoud van alle eigenschappen samen met andere inhoud opgeslagen in de volledige-tekstindex. Wanneer u echter een zoekterm indexeert die in een geregistreerde eigenschap is gevonden, slaat de indexeerfunctie voor volledige tekst ook de bijbehorende interne eigenschaps-id op met de term. Als een eigenschap daarentegen niet is geregistreerd, wordt deze opgeslagen in de index voor volledige tekst alsof deze deel uitmaakt van de hoofdtekst van het document en de waarde nul heeft voor de interne eigenschaps-id.
In de volgende afbeelding ziet u een logische weergave van hoe zoektermen worden weergegeven in een index in volledige tekst die is gekoppeld aan de lijst met zoekeigenschappen die in de vorige afbeelding wordt weergegeven. Een voorbeelddocument, Document 1 bevat drie eigenschappen: Titel, Auteur en Trefwoorden, evenals de hoofdtekst van het document. Voor de eigenschappen Titel en Trefwoorden, die zijn opgegeven in de lijst met zoekeigenschappen, worden zoektermen gekoppeld aan de bijbehorende interne eigenschap-id's in de volledige-tekstindex. De inhoud van de eigenschap Auteur wordt daarentegen geïndexeerd alsof deze deel uitmaakt van de hoofdtekst van het document. Dit betekent dat het registreren van een eigenschap de grootte van de index voor volledige tekst enigszins vergroot, afhankelijk van de hoeveelheid inhoud die in de eigenschap is opgeslagen.
Zoektermen in de eigenschap Titel-'Favoriet', 'Fietsen' en 'Paden' zijn gekoppeld aan de interne eigenschaps-id die is toegewezen aan Titel voor deze index, 1. Zoektermen in de eigenschap Trefwoorden - "fietsen" en "berg" - zijn gekoppeld aan de interne eigenschaps-id die aan Tags voor deze index is toegewezen, 2. Voor zoektermen in de eigenschap "Author"-"Jane" en "Doe"- en zoektermen in de hoofdtekst van het document is de interne eigenschaps-ID 0. De term 'fietsen' vindt plaats in de eigenschap Titel, in de eigenschap Trefwoorden (Tags) en in de hoofdtekst van het document. Een zoektocht naar 'fietsen' in de eigenschap Titel of Trefwoorden (Tags) zou dit document in de resultaten weergeven. Een algemene volledige-tekstquery voor 'fietsen' retourneert dit document ook, alsof de index niet is geconfigureerd voor het zoeken van eigenschappen. Een zoekopdracht naar 'fietsen' in de eigenschap Auteur retourneert dit document niet.
Een query voor volledige tekst met eigenschapsbereik maakt gebruik van de interne eigenschaps-id's die zijn geregistreerd voor de huidige lijst met zoekeigenschappen van de volledige-tekstindex.
Impact van het inschakelen van het zoeken naar eigenschappen
Als u een index voor volledige tekst configureert om zoeken op een of meer eigenschappen te ondersteunen, wordt de index enigszins groter, afhankelijk van het aantal eigenschappen dat u opgeeft in de lijst met zoekeigenschappen en de inhoud van elke eigenschap.
Bij het testen van typische verzamelingen van Microsoft Word-, Excel- en PowerPoint-documenten hebben we een volledige-tekstindex geconfigureerd om typische zoekeigenschappen te indexeren. Als u deze eigenschappen indexeert, is de grootte van de index voor volledige tekst met ongeveer 5 procent toegenomen. We verwachten dat deze geschatte groottetoename typisch zal zijn voor de meeste documentteksten. Uiteindelijk is de toename van de grootte echter afhankelijk van de hoeveelheid eigenschapsgegevens in een bepaald documentlichaam ten opzichte van de hoeveelheid algemene gegevens.
Een lijst met zoekeigenschappen maken en Eigenschappen zoeken inschakelen
Een lijst met zoekeigenschappen maken
Een lijst met zoekeigenschappen maken met Transact-SQL-
Gebruik de CREATE SEARCH PROPERTY LIST (Transact-SQL) instructie en geef ten minste een naam op voor de lijst.
Een lijst met zoekeigenschappen maken in Management Studio
Vouw in Objectverkenner de server uit.
Vouw Databasesuit en vouw vervolgens de database uit waarin u de lijst met zoekeigenschappen wilt maken.
Vouw Storageuit en klik met de rechtermuisknop op zoekeigenschappenlijsten.
Selecteer nieuwe lijst met zoekeigenschappen.
Geef de naam van de eigenschappenlijst op.
Geef optioneel iemand anders op als eigenaar van de eigendomslijst.
Selecteer een van de volgende opties:
een lege lijst met zoekeigenschappen maken
Maken op grond van een bestaande lijst met zoekeigenschappen
Zie voor meer informatie Nieuwe lijst met zoekeigenschappen.
Selecteer OK-.
Eigenschappen toevoegen aan een lijst met zoekeigenschappen
Voor het zoeken van eigenschappen moet u een lijst met zoekeigenschappen maken en een of meer eigenschappen opgeven die u doorzoekbaar wilt maken. Wanneer u een eigenschap toevoegt aan een lijst met zoekeigenschappen, wordt de eigenschap geregistreerd voor die specifieke lijst. Als u een eigenschap wilt toevoegen aan een lijst met zoekeigenschappen, hebt u de volgende waarden nodig:
GUID van eigenschappenset
Elke zoekeigenschap behoort tot één eigenschappenset die een groep gerelateerde eigenschappen bevat. Elke eigenschappenset wordt geïdentificeerd met een GUID (Globally Unique Identifier).
Identificator voor eigenschap geheel getal
Elke zoekeigenschap heeft een id die uniek is binnen de eigenschappenset. Voor een bepaalde eigenschap kan de id een geheel getal of een tekenreeks zijn, maar zoeken in volledige tekst ondersteunt alleen geheel getal-id's.
Eigenschapsnaam
Dit is de naam die gebruikers opgeven in volledige tekstquery's om de eigenschap te doorzoeken. Een eigenschapsnaam kan interne spaties bevatten. De maximale lengte is 256 tekens.
De naam van de eigenschap kan een van de volgende zijn:
De canonieke naam van Windows van een eigenschap, zoals System.Author of System.Contact.HomeAddress.
Een gebruiksvriendelijke naam die gemakkelijk te onthouden is voor uw gebruikers. Sommige eigenschappen zijn gekoppeld aan een bekende gebruiksvriendelijke naam, zoals 'Auteur' of 'Thuisadres', maar u kunt opgeven welke naam het meest geschikt is voor uw gebruikers.
Notitie
Een gegeven combinatie van eigenschapsgroep-GUID en eigenschaps-ID moet uniek zijn in een bepaalde lijst met zoekeigenschappen. Dit betekent dat u niet meer dan één keer dezelfde eigenschap kunt toevoegen met verschillende namen of beschrijvingen.
Beschrijving van eigenschap (optioneel)
Wanneer u een zoekeigenschap toevoegt aan een lijst met zoekeigenschappen, kunt u een optionele beschrijving opgeven. U wilt bijvoorbeeld informatie opgeven over een eigenschap die niet duidelijk is uit de naam, of u wilt de eigenschappenset van de eigenschap beschrijven.
Om waarden te verkrijgen voor een lijst met zoekeigenschappen
Zie GUID's van eigenschappen en integer-id's van eigenschappen voor zoekeigenschappen.
Een eigenschap toevoegen aan een lijst met zoekeigenschappen met Transact-SQL-
Gebruik de ALTER SEARCH PROPERTY LIST (Transact-SQL) instructie met de waarden die u hebt verkregen met behulp van een van de methoden die in het artikel worden beschreven, eigenschappenset-GUID's en eigenschap integer-id's voor zoekeigenschappen.
In het volgende voorbeeld ziet u hoe u deze waarden gebruikt bij het toevoegen van een eigenschap aan een lijst met zoekeigenschappen:
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.' );
Een eigenschap toevoegen aan een lijst met zoekeigenschappen in Management Studio
Gebruik het dialoogvenster 'Zoekeigenschappenlijst' om zoekeigenschappen toe te voegen en te verwijderen. U vindt zoekeigenschappenlijsten in Objectverkenner onder het knooppunt Opslag van de bijbehorende database.
Een lijst met zoekeigenschappen koppelen aan een Full-Text-index
Voor een index in volledige tekst ter ondersteuning van het zoeken van eigenschappen op de eigenschappen die zijn geregistreerd voor een lijst met zoekeigenschappen, moet u de lijst met zoekeigenschappen koppelen aan de index en de index opnieuw vullen. Als u de index voor volledige tekst opnieuw invult, worden eigenschapsspecifieke indexvermeldingen gemaakt voor zoektermen in elk van de geregistreerde eigenschappen.
Zolang de index voor volledige tekst gekoppeld blijft aan deze lijst met zoekeigenschappen, kan de optie EIGENSCHAP van het predicaat CONTAINS worden gebruikt om te zoeken naar eigenschappen die zijn geregistreerd voor die lijst met zoekeigenschappen.
Als u de lijst met zoekeigenschappen wijzigt die is gekoppeld aan een index in volledige tekst, moet de index opnieuw worden opgebouwd om deze in een consistente status te brengen. De index wordt onmiddellijk ingekort en is leeg totdat de volledige populatie is voltooid. Zie 'Opmerkingen' in ALTER FULLTEXT INDEX (Transact-SQL)voor meer informatie over wanneer het wijzigen van de lijst met zoekeigenschappen leidt tot het herbouwen van de index.
Een lijst met zoekeigenschappen koppelen aan een volledige-tekstindex met Transact-SQL-
Gebruik de ALTER FULLTEXT INDEX (Transact-SQL) instructie met de SET SEARCH PROPERTY LIST = <property_list_name>
clausule.
Een lijst met zoekeigenschappen koppelen aan een volledige-tekstindex met Management Studio
Geef een waarde op voor zoekeigenschappenlijst op de pagina Algemeen van het dialoogvenster IndexeigenschappenFull-Text.
Zoekeigenschappen opvragen met CONTAINS
De basis-BEVAT syntaxis voor een query voor volledige tekst met eigenschapsbereik is als volgt:
SELECT column_name FROM table_name
WHERE CONTAINS ( PROPERTY ( column_name, 'property_name' ), '<contains_search_condition>' )
Met de volgende query wordt bijvoorbeeld gezocht naar een geïndexeerde eigenschap, Title
, in de kolom Document
van de Production.Document
tabel van de AdventureWorks
-database. De query retourneert alleen documenten waarvan de eigenschap Title
de tekenreeks bevat Maintenance
of Repair
USE AdventureWorks2022;
GO
SELECT Document FROM Production.Document
WHERE CONTAINS ( PROPERTY ( Document, 'Title' ), 'Maintenance OR Repair')
GO
In dit voorbeeld wordt ervan uitgegaan dat het IFilter voor het document de eigenschap Titel extraheert, dat de eigenschap Titel wordt toegevoegd aan de lijst met zoekeigenschappen en dat de lijst met zoekeigenschappen is gekoppeld aan de index voor volledige tekst.
Lijsten met zoekeigenschappen beheren
Een lijst met zoekeigenschappen weergeven en wijzigen
Een lijst met zoekeigenschappen wijzigen met Transact-SQL-
Gebruik de ALTER SEARCH PROPERTY LIST (Transact-SQL) instructie om zoekeigenschappen toe te voegen of te verwijderen.
Een lijst met zoekeigenschappen weergeven en wijzigen in Management Studio
Vouw in Objectverkenner de server uit.
Vouw Databasesuit en vouw vervolgens de database uit.
Breid Storageuit.
Vouw lijst met zoekeigenschappen uit om de lijsten met zoekeigenschappen weer te geven.
Klik met de rechtermuisknop op de eigenschappenlijst en selecteer Eigenschappen.
Gebruik in het dialoogvenster Editor voor eigenschappenlijst zoeken het Eigenschappenraster om zoekeigenschappen toe te voegen of te verwijderen.
Als u een documenteigenschap wilt verwijderen, klikt u op de rijkop links van de eigenschap en drukt u op DEL.
Als u een documenteigenschap wilt toevoegen, klikt u in de lege rij onder aan de lijst, rechts van het *en voert u de waarden voor de nieuwe eigenschap in.
Zie Zoekeigenschappenlijsteditorvoor meer informatie over deze waarden. Zie Property Set GUID's en Property Integer ID's zoeken voor zoekeigenschappenvoor informatie over hoe u deze waarden kunt verkrijgen voor eigenschappen die zijn gedefinieerd door Microsoft. Zie de documentatie van die leverancier voor informatie over eigenschappen die zijn gedefinieerd door een onafhankelijke softwareleverancier (ISV).
Selecteer OK-.
Een lijst met zoekeigenschappen verwijderen
U kunt een eigenschappenlijst niet verwijderen uit een database terwijl de lijst is gekoppeld aan een volledige-tekstindex.
Een lijst met zoekeigenschappen verwijderen met Transact-SQL-
Gebruik de instructie DROP SEARCH PROPERTY LIST (Transact-SQL).
Een lijst met zoekeigenschappen verwijderen in Management Studio
Vouw in Objectverkenner de server uit.
Vouw Databasesuit en vouw vervolgens de database uit.
Vouw Storage-uit en vouw vervolgens het knooppunt Zoeklijst met eigenschappen uit.
Klik met de rechtermuisknop op de eigenschappenlijst die u wilt verwijderen en klik op verwijderen.
Selecteer OK-.
Zie ook
Kenmerkenreeks-GUID's en kenmerk-integer-ID's vinden voor zoekeigenschappen
Filters configureren en beheren voor zoek-