Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Innehållet i dokumentegenskaperna kunde tidigare inte skiljas från innehållet i dokumenttexten. Den här begränsningen begränsade fulltextfrågor till allmänna sökningar i hela dokument. Nu kan du dock konfigurera ett fulltextindex för att stödja egenskapsomfångssökning på vissa egenskaper, till exempel Författare och Rubrik, för dokumenttyper som stöds i en varbinär, varbinary(max) (inklusive FILESTREAM), eller bild binär datakolumn. Den här typen av sökning kallas egenskapssökning.
Det associerade filter (IFilter) avgör om egenskapssökning är möjligt för en viss typ av dokument. För vissa dokumenttyper extraherar tillhörande IFilter vissa eller alla egenskaper som definierats för den typen av dokument, samt innehållet i dokumenttexten. Du kan konfigurera ett fulltextindex för att endast stödja egenskapssökning på egenskaper som extraheras av ett IFilter under fulltextindexering. Bland IFilters som extraherar ett antal dokumentegenskaper finns IFilters för Microsoft Office-dokumenttyper (till exempel .docx, .xlsxoch .pptx). Å andra sidan genererar XML IFilter inte egenskaper.
Så här fungerar Full-Text Search med sökegenskaper
Interna egenskaps-ID:n
Full-Text Engine tilldelar godtyckligt varje registrerad egenskap ett internt egenskaps-ID, som unikt identifierar egenskapen i den specifika söklistan och som är specifik för den sökegenskapslistan. Om en egenskap läggs till i flera sökegenskapslistor skiljer sig därför det interna egenskaps-ID:t sannolikt mellan olika listor.
När en egenskap registreras för en söklista tilldelar Full-Text Engine godtyckligt ett internt egenskaps-ID egenskapen. Det interna egenskaps-ID:t är ett heltal som unikt identifierar egenskapen i sökegenskapslistan.
Följande bild visar en logisk vy över en sökegenskapslista som anger två egenskaper, Rubrik och Nyckelord. Egenskapslistans namn för Nyckelord är "Taggar". Dessa egenskaper tillhör samma egenskapsuppsättning, vars GUID är F29F85E0-4FF9-1068-AB91-08002B27B3D9. Egenskaps heltalsidentifierare är 2 för Rubrik och 5 för Taggar (nyckelord). Full-Text Engine mappar godtyckligt varje egenskap till ett internt egenskaps-ID som är unikt för listan över sökegenskaper. Det interna egenskaps-ID:t för egenskapen Title är 1 och det interna egenskaps-ID:t för egenskapen Taggar är 2.
Det interna egenskaps-ID:t skiljer sig sannolikt från egenskapens heltalsidentifierare. Om en viss egenskap har registrerats för flera sökegenskapslistor kan ett annat internt egenskaps-ID tilldelas för varje sökegenskapslista. Det interna egenskaps-ID:t kan till exempel vara 4 i en sökegenskapslista, 1 i en annan, 3 i en annan och så vidare. Egenskapens heltalsidentifierare är däremot inbyggd hos egenskapen och förblir densamma oavsett var egenskapen används.
Indexering av registrerade egenskaper
När ett fulltextindex har associerats med en sökegenskapslista måste indexet fyllas i igen för att indexera egenskapsspecifika söktermer. Under fulltextindexering lagras innehållet i alla egenskaper i fulltextindexet tillsammans med annat innehåll. Men när du indexerar en sökterm som finns i en registrerad egenskap lagrar fulltextindexeraren även motsvarande interna egenskaps-ID med termen . Om en egenskap däremot inte är registrerad lagras den i fulltextindexet som om den vore en del av dokumenttexten och har värdet noll för det interna egenskaps-ID:t.
Följande bild visar en logisk vy över hur söktermer visas i ett fulltextindex som är associerat med sökegenskapslistan som visas i föregående bild. Ett exempeldokument, dokument 1 innehåller tre egenskaper, rubrik, författare och nyckelord samt dokumenttexten. För egenskaperna Rubrik och Nyckelord, som anges i sökegenskapslistan, associeras söktermer med motsvarande interna egenskaps-ID:n i fulltextindexet. Innehållet i egenskapen Author indexeras däremot som om det vore en del av dokumenttexten. Det innebär att registreringen av en egenskap ökar storleken på fulltextindexet något, beroende på mängden innehåll som lagras i egenskapen.
Söktermer i egenskapen Rubrik – "Favorit", "Cykling" och "Spår" – är kopplade till det interna egenskaps-ID som har tilldelats Rubrik för det här indexet, 1. Söktermer i egenskapen Nyckelord – "cykling" och "berg" – är associerade med det interna egenskaps-ID som tilldelats taggar för det här indexet, 2. För söktermer i egenskapen Author-"Jane" och "Doe" och söktermer i dokumenttexten är det interna egenskaps-ID:t 0. Termen "cykling" inträffar i egenskapen Rubrik, i egenskapen Nyckelord (taggar) och i dokumenttexten. En egenskapssökning efter "cykling" i egenskapen Rubrik eller Nyckelord (taggar) returnerar det här dokumentet i resultatet. En allmän fulltextfråga för "cykling" returnerar också det här dokumentet, som om indexet inte hade konfigurerats för egenskapssökning. En egenskapssökning efter "cykling" i egenskapen Author returnerar inte det här dokumentet.
En fulltextfråga med egenskapsomfång använder de interna egenskaps-ID:n som registrerats för den nuvarande sökegenskaplistan i fulltextindexet.
Effekten av att aktivera fastighetssökning
Om du konfigurerar ett fulltextindex som stöd för sökning på en eller flera egenskaper ökar storleken på indexet något, beroende på antalet egenskaper som du anger i sökegenskapslistan och på innehållet i varje egenskap.
När vi testade vanliga corpuses av Microsoft Word-, Excel- och PowerPoint-dokument konfigurerade vi ett fulltextindex för att indexera vanliga sökegenskaper. Indexeringen av dessa egenskaper ökade storleken på fulltextindexstorleken med cirka 5 procent. Vi räknar med att den här ungefärliga storleksökningen kommer att vara typisk för de flesta dokument corpuses. Men i slutändan beror storleksökningen på mängden egenskapsdata i en viss dokument corpus i förhållande till mängden övergripande data.
Skapa en sökegenskapslista och aktivera egenskapssökning
Skapa en sökegenskapslista
Skapa en lista över sökegenskaper med Transact-SQL
Använd CREATE SEARCH PROPERTY LIST (Transact-SQL)-instruktionen och ange minst ett namn på listan.
Skapa en sökegenskapslista i Management Studio
Expandera servern i Object Explorer.
Expandera Databaseroch expandera sedan databasen där du vill skapa listan med sökegenskaper.
Expandera Storageoch högerklicka sedan på Söklistor för egenskaper.
Välj Ny sökegenskapslista.
Ange egenskapslistans namn.
Du kan också ange någon annan som ägare av egenskapslistan.
Välj något av följande alternativ:
Skapa en tom sökegenskapslista
Skapa från en befintlig sökegenskapslista
Mer information finns i Lista över nya sökegenskaper.
Välj OK.
Lägga till egenskaper i en sökegenskapslista
Egenskapssökning kräver att du skapar en sökegenskapslista och anger en eller flera egenskaper som du vill göra sökbara. När du lägger till en egenskap i en sökegenskapslista registreras egenskapen för den specifika listan. Om du vill lägga till en egenskap i en sökegenskapslista behöver du följande värden:
Guid för egenskapsuppsättning
Varje sökegenskap tillhör en enskild egenskapsuppsättning som innehåller en grupp relaterade egenskaper. Varje egenskapsuppsättning identifieras av en globalt unik identifierare (GUID).
Egenskaps heltalsidentifierare
Varje sökegenskap har en identifierare som är unik i egenskapsuppsättningen. För en viss egenskap kan identifieraren vara antingen ett heltal eller en sträng, men fulltextsökning stöder endast heltalsidentifierare.
Egenskapsnamn
Det här är det namn som användarna anger i fulltextsökningar för att söka på egenskapen. Ett egenskapsnamn kan innehålla interna blanksteg. Den maximala längden är 256 tecken.
Egenskapsnamnet kan vara något av följande:
Egenskapens kanoniska Windows-namn, till exempel System.Author eller System.Contact.HomeAddress.
Ett användarvänligt namn som är enkelt för användarna att komma ihåg. Vissa egenskaper är associerade med ett välkänt användarvänligt namn, till exempel "Författare" eller "Hemadress", men du kan ange vilket namn som passar bäst för användarna.
Anteckning
En viss kombination av egenskapsuppsättningens GUID och egenskapsidentifierare måste vara unik i en viss sökegenskapslista. Det innebär att du inte kan lägga till samma egenskap mer än en gång med olika namn eller beskrivningar.
Egenskapsbeskrivning (valfritt)
När du lägger till en sökegenskap i en sökegenskapslista kan du ange en valfri beskrivning. Du kanske till exempel vill ange information om en egenskap som inte framgår av dess namn, eller så kanske du vill beskriva egenskapens egenskapsuppsättning.
Hämta värden för en sökegenskapslista
Se Hitta egenskapsuppsättnings-GUID:er och egenskapsheltal-ID:er för sökegenskaper.
Om du vill lägga till en egenskap i en sökegenskapslista med Transact-SQL
Använd ALTER SEARCH PROPERTY LIST (Transact-SQL)-instruktionen med de värden som du fick med hjälp av någon av metoderna som beskrivs i artikeln Hitta GUID:er för egenskapsuppsättningar och heltals-ID:n för sökegenskaper.
I följande exempel visas hur dessa värden används när du lägger till en egenskap i en sökegenskapslista:
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.' );
Om du vill lägga till en egenskap i en sökegenskapslista i Management Studio
Använd dialogrutan Egenskaper för sökegenskapslistor för att lägga till och ta bort sökegenskaper. Du hittar sökegenskapslistor i Object Explorer under noden Storage i den associerade databasen.
Associera en sökegenskapslista med ett Full-Text index
För att ett fulltextindex ska ha stöd för egenskapssökning på de egenskaper som är registrerade för en sökegenskapslista måste du associera listan med sökegenskap med indexet och fylla i indexet igen. Om du återställer fulltextindexet skapas egenskapsspecifika indexposter för söktermer i var och en av de registrerade egenskaperna.
Så länge fulltextindexet fortfarande är associerat med den här sökegenskapslistan kan fulltextfråga använda alternativet EGENSKAP i CONTAINS-predikatet för att söka efter egenskaper som är registrerade för sökegenskapslistan.
Om du ändrar sökegenskapslistan som är associerad med ett fulltextindex måste indexet återskapas så att det hamnar i ett konsekvent tillstånd. Indexet trunkeras omedelbart och är tomt tills indexeringen körs i sin helhet. Mer information om när du ändrar listan över sökegenskaper gör att indexet återskapas finns i "Anmärkningar" i ALTER FULLTEXT INDEX (Transact-SQL).
Associera en sökegenskapslista med ett fulltextindex med Transact-SQL
Använd kommandot ALTER FULLTEXT INDEX (Transact-SQL) med SET SEARCH PROPERTY LIST = <property_list_name>
-satsen.
Om du vill associera en sökegenskapslista med ett fulltextindex med Management Studio
Ange ett värde för sökegenskapslista på sidan Allmänt i dialogrutan Full-Text Indexegenskaper.
Köra frågor mot sökegenskaper med CONTAINS
Den grundläggande syntaxen för CONTAINS för en specificerad egenskapsfulltextfråga är följande:
SELECT column_name FROM table_name
WHERE CONTAINS ( PROPERTY ( column_name, 'property_name' ), '<contains_search_condition>' )
Följande fråga söker till exempel på en indexerad egenskap, Title
, i kolumnen Document
i tabellen Production.Document
i AdventureWorks
-databasen. Frågan returnerar endast dokument vars egenskap Title
innehåller strängen Maintenance
eller Repair
USE AdventureWorks2022;
GO
SELECT Document FROM Production.Document
WHERE CONTAINS ( PROPERTY ( Document, 'Title' ), 'Maintenance OR Repair')
GO
Det här exemplet förutsätter att IFilter för dokumentet extraherar dess egenskap Title, att egenskapen Title läggs till i listan över sökegenskaper och att listan över sökegenskap är associerad med fulltextindexet.
Hantera sökegenskapslistor
Visa och ändra en sökegenskapslista
Ändra en sökegenskapslista med Transact-SQL
Använd instruktionen ALTER SEARCH PROPERTY LIST (Transact-SQL) för att lägga till eller ta bort sökegenskaper.
Visa och ändra en sökegenskapslista i Management Studio
Expandera servern i Object Explorer.
Expandera Databaser, och expandera sedan databasen.
Expandera Storage.
Utöka sökegenskapslistor för att visa dem.
Högerklicka på egenskapslistan och välj Egenskaper.
I dialogrutan Search Property List Editor använder du rutnätet Egenskaper för att lägga till eller ta bort sökegenskaper:
Om du vill ta bort en dokumentegenskap klickar du på radrubriken till vänster om egenskapen och trycker på DEL.
Om du vill lägga till en dokumentegenskap klickar du på den tomma raden längst ned i listan till höger om *och anger värdena för den nya egenskapen.
Information om dessa värden finns i Search Property List Editor. Information om hur du hämtar dessa värden för egenskaper som definierats av Microsoft finns i Find Property Set GUIDs and Property Integer IDs for Search Properties. Information om egenskaper som definierats av en oberoende programvaruleverantör (ISV) finns i dokumentationen för leverantören.
Välj OK.
Ta bort en sökegenskapslista
Du kan inte släppa en egenskapslista från en databas medan listan är associerad med ett fulltextindex.
Om du vill ta bort en sökegenskapslista med Transact-SQL
Använd DROP SEARCH PROPERTY LIST (Transact-SQL)-instruktion.
Ta bort en sökegenskapslista i Management Studio
Expandera servern i Object Explorer.
Expandera Databaseroch expandera sedan databasen.
Expandera Storageoch expandera sedan Sök egenskapslistor noden.
Högerklicka på egenskapslistan som du vill ta bort och klicka på Ta bort.
Välj OK.
Se även
Hitta egenskapsuppsättningars GUID och egenskapernas heltals-ID för sökfunktioner
Konfigurera och hantera filter för sökning