Der Indexdienst bietet Ihnen die Möglichkeit, breit gefächerte Suchabfragen mit einer SQL ähnlichen Syntax auszuführen. Besonders interessant ist hierbei, dass in vielen Dateitypen nach Textinhalten gesucht werden kann. Was ist der Indexdienst Dateiverwaltung und erweiterte Dateisuchen sind momentan in der Microsoft Welt ein Schlagwort. WinFS sollte da, laut Microsoft, den großen Durchbruch bringen. Große Websuchmaschinenanbieter schlagen in dieselbe Kerbe und bieten Tools für die Desktopsuche. Dabei haben moderne Microsoft Betriebssysteme wie WinXP und Win2000 bereits alles an Bord um Volltextsuchen auf Basis eines Dateiindizes zu erstellen; den so genannten MS- Indexdienst. Der Indexdienst bietet Ihnen die Möglichkeit, breit gefächerte Suchabfragen mit einer SQL ähnlichen Syntax auszuführen. Besonders interessant ist hierbei, dass in vielen Dateitypen nach Textinhalten gesucht werden kann. Hersteller bekannter Dateiformate wie Adobe für PDF-Dokumente bieten Erweiterungen für den Indexdienst an, um diese Dateiformate für den MS-Indexdienst verwertbar zu machen (Adobe IFilter). Einen schnellen Überblick über die auf Ihrem System installierten IFilter Schnittstellen können Sie mit dem Tool IFilter Explorer von Citeknet bekommen ( www.citeknet.com). Der Indexdienst kann auch von jeder modernen Programmiersprache aus benützt werden. In unserem Fall benützen wir den MS Indexdienst von VB.NET 2003 aus über einen OLEDB-Dataprovider. Doch dazu später. Zuerst sehen wir uns an, wie man den Indexdienst einrichtet. Wie richte ich den Indexdienst ein und erstelle einen neuen Index Für das Arbeiten mit dem Beispiel richten wir jetzt einen Katalog namens Test ein. Erstellen Sie auf Ihrer Festplatte einen zu katalogisierenden Ordner und kopieren Sie einige Dateien in diesen Ordner. Verwalten können Sie den Indexdienst über die Computerverwaltung. Beim Aktivieren werden automatisch zwei Kataloge erstellt (System und einer für die IIS Verzeichnisse). Es empfiehlt sich diese zu löschen, da das Indizieren der Dateien eine zeitaufwändige Angelegenheit ist. Ein neuer Katalog kann über das Kontextmenü des Indexdiensteintrages erstellt werden. Beachten Sie, dass der Indexdienst vor Erstellen oder Löschen eines Katalogs beendet werden und danach wieder gestartet soll ! Geben Sie nun Ihrem neuen Katalog den Namen Test und verweisen Sie auf einen Pfad mit den zu indizierenden Dateien. Nach erfolgreichem Erstellen des Katalogs sollten wir nun noch die Leistung des Indexdienstes verändern um eine sofortige Indizierung der Dateien zu erzwingen. Wir stellen die Indexnutzung auf "Benutzerdefiniert" und gelangen über den Button "Benutzerdefiniert.." in ein Kontextmenü wo wir den Schieberegler "Indizierung" auf "Sofort" ändern. Achtung: Auf das Ändern der Indexdienstleistung sollten Sie im produktiven Betrieb verzichten da dies zu einer stark steigenden Prozessor- und Speicherlast führen kann. Für unser Beispiel ist dies aber recht da wir sofort mit dem neuen Index arbeiten können ! Nun können Sie den Indexdienst wieder starten und dieser sollte sofort mit dem Erstellen eines neuen IndexTables in Ihrem gewählten Verzeichnis beginnen. Dabei wird in dem Verzeichnis ein versteckter Ordner mit dem Namen catalog.wci erstellt. Wie benutze ich den neuen Index in meinem VB.NET 2003 Source Allgemeines Provider=MSIDXS; Data Source=Test; Hier der komplette Sourcecode für einen Verbindungsaufbau über ein OLEDBConnection Objekt: Dim strConn As String = "Provider=MSIDXS; Data Source=Test;" Dim conn As OleDbConnection conn = New OleDbConnection(strConn) conn.Open() Wenn die Verbindung auf die Datenbank erst einmal geöffnet ist können wir auf den Index normale SQL-Abfragen ausführen. VolltextsucheWichtige Felder:
Der SQL String würde dann so aussehen: strSQL = "Select Rank, Characterization, Path, Filename ,size FROM SCOPE() WHERE CONTAINS Suchbegriff"
Wie bei Googles erweiterter Suche kann man auch beim Indexdienst nach Wortgruppen oder genauen Wortlauten suchen. Dazu können mehrere Wörter mit AND und OR Verknüpfungen versehen werden oder eine sogenannte FREETEXT-Suche verwendet werden. Beispiele: "Select Rank, Characterization, Path, Filename, size FROM SCOPE() _ WHERE CONTAINS ('"Begriff 1" AND "Begriff 2"') ORDER BY Rank DESC" "Select Rank, Characterization, Path, Filename, size FROM SCOPE() _ WHERE CONTAINS ('"Begriff 1" OR "Begriff 2"') ORDER BY Rank DESC" "Select Rank, Characterization, Path, Filename, size FROM SCOPE() _ WHERE FREETEXT (Contents, 'Suchbegriff') ORDER BY Rank DESC" Die Suchabfrage kann folgendermaßen ausgeführt werden: Dim cmd As OleDbCommand Dim adapter As OleDbDataAdapter Dim ds As DataSet cmd = New OleDbCommand(strSQL, conn) adapter = New OleDbDataAdapter(cmd) ds = New DataSet adapter.Fill(ds) Das resultierende Dataset kann dann z. B. an ein Datagrid gebunden werden: Datagrid1.Datasouce = ds.Tables(0) Dateisuche
Beispiel: "Select DocAuthor, DocTitle, DocType, Size FROM SCOPE"
Das Tutorial kann im PDF Format mit einem kompletten VB.NET 2003 WinForms-Beispiel unter www.visualsoft-net.de heruntergeladen werden. Dieser Workshop wurde bereits 18.433 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Workshops finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
|||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |