Ja richtig gehört: Statistisch semantische Suche. Ein schönes Wort. In Wikipedia liest man dazu “.. Bedeutung sprachlicher Zeichen..” Und das triffts auch schon fast. Die statistisch semantische Suche extrahiert relevante Phrasen per Volltextsuche aus Spalten oder Filetables und gewichtet diese.
Sehen wir uns mal gewichtete Phrasen eines Dokuments an.
Man ganz gut erkennen, dass hier in einem Dokument folgende Begriffe gefunden wurden und je nach Score der eine wohl wichtiger (häufiger) zu sein scheint, als ein anderer. In diesem Beispiel geht es also vermutlichum Workflows, Stichwörter und Sharepoint.
Je höher der Score umso wichtiger. Tatsächlich muss der Begriff nicht als einzelnes Wort vorkommen, sondern durchaus in Kombinationen. In diesen Text geht es beispielsweise auch um Unternehmensstichwörter.
Aber wie kommt die statistisch semantische Suche in den SQL Server?
Dazu brauchts ein ordentliches Rezept mit folgenden Zutaten: Eine Semantikdatenbank, evtl. das Microsoft Office Filter Paket, die Volltextsuche, ein wenig TSQL und einen Neustart der Volltextsuche.
Punkt 1: Semantikdatenbank einbinden
Auf der DVD des SQL Servers findet sich im Verzeichnis 1031_DEU_LPx64Setup die Installationsdatei SemanticLanguageDatabase.msi für die Datenbank. Das Setup entpackt lediglich die Datenbank in ein Verzeichnis. Um die Semantikdatenbank in die SQL Serverinstanz einzubinden, muss die Datenbank noch angefügt werden. Entweder per GUI im SSMS oder per Script. Anschließend die Datenbank für die semantische Suche registrieren.
Punkt 2: Office Filter Paket einbinden
Da SQL Server keine aktuellen Office Versionen out-of-the-box supportet, kann man das schnell ändern indem man sich das Office Filter Paket 2010 downloaded: http://www.microsoft.com/de-de/download/details.aspx?id=17062. Nach der Installation muss das Filterpaket noch der Volltextsuche bekannt gemacht werden.
—SemantikDb DB extrahieren (1031_DEU_LPx64Setup) —und attachen…..msi-File
CREATE DATABASE semanticsdb ON (FILENAME = ‚C:Microsoft Semantic Language Databasesemanticsdb.mdf‚) FOR ATTACH
— und registrieren
EXEC sp_fulltext_semantic_register_language_statistics_db @dbname = N‚semanticsdb‚;
—Welche Sprachen werden unterstützt
select * from sys.fulltext_semantic_languages
—Filterpackage installiert?? Exsitiert für Office 2007 und Office 2010
—Aktivieren der iFilter für Volltextsuche
Sp_fulltext_service ‚Load_os_resources‚, 1
—Anzeige der indizierbaren Dokumente
select * from sys.fulltext_document_types
Nun Steht die Volltextsuche inkl semantischer Suche voll zur Verfügung.
In den Volltexteigenschaften der Tabelle nur noch Häkchen setzten und den richtigen Typ wählen.
File_type für den Inhalt der Dokumente. In diesem Screenshot handelt es sich um eine Filetable.
Im nächsten Artikel sehen wir uns dann die speziellen Funktionen zum Thema Semantische Suche an.