I det, der efterhånden har udviklet sig til en lille følgeton om FILESTREAMs i SQL Server, er vi nu kommet til FULLTEXT søgning. For selvom SQL Server håndterer FILESTREAM data som eksterne filer, understøttes FULLTEXT søgning i filerne, og søgningen kan endda gøres afhængig af formatet på indholdet i filerne.  HTML filer er et godt eksempel på dette.

Hvis man forestiller sig et website, hvor brugeren har mulighed for at søge i en række artikler, der ligger gemt som HTML, vil brugerne af et sådant website formentlig have en forventning om, at de gennem søgningen kun søger i artiklernes egentlige tekstindhold.  De forventer ikke at kunne søge efter de HTML tags, der tilfældigvis findes i de gemte artikler.  Så hvis der søges efter “h1”, skal søgningen kun give et resultat, hvis en artikels brødtekst rente faktisk indeholder “h1”, og ikke hvis artiklen har en overskrift med et “<h1>” tag.

FULLTEXT søgning i FILESTREAMs understøtter netop et sådant scenarie.  Ved at fortælle SQL Server, hvilket format de gemte filer er i, vil SQL Server sørge for, at søgningen tilpasses filformatet.  Dette gøres ved at angive en TYPE COLUMN, når man opretter sit FULLTEXT INDEX:

   1:  CREATE TABLE [Article]
   2:  (
   3:      [ArticleId] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
   4:      [Title] [nvarchar](4000) NOT NULL,
   5:      [Content] [varbinary](max) FILESTREAM  NULL,
   6:      [FileExtension] [nvarchar](5) NOT NULL,
   7:      CONSTRAINT [PK_Article] PRIMARY KEY CLUSTERED 
   8:      (
   9:          [ArticleId] ASC
  10:      ) ON [PRIMARY] FILESTREAM_ON [FILESTREAM1]
  11:  ) ON [PRIMARY] FILESTREAM_ON [FILESTREAM1]
  12:  GO
  13:   
  14:  CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
  15:  GO
  16:   
  17:  CREATE FULLTEXT INDEX ON Article
  18:  (
  19:      Title,
  20:      Content TYPE COLUMN FileExtension
  21:  ) KEY INDEX PK_Article;
  22:  GO

I linje 20 angives, at kolonnen FileExtension indeholder filtypen for Content, hvor artiklernes indhold ligger som FILESTREAM.  For at lade SQL Server foretage en fornuftig søgning i vores HTML artikler, skal vi bare sørge for, at kolonnen FileExtension indeholder teksten “.htm”.

SQL Server understøtter som standard en lang række formater.  Der findes et catalog view kaldet sys.fulltext_document_types, som returnerer de filformater, SQL Server understøtter.  Og flere kan tilføjes – man kan endda selv implementere nogen (i COM).