Neno Lojes Vista-Tagebuch

Tag 17: Die Vista-Suche und wie sie auch in unserer Software gute Dienste leistet

Die Suchfunktion von Windows Vista ist auch für eigene Programme von Interesse – entweder, um sich als Datenquelle mit in den Index zu integrieren, um die eigenen Informationen durchsuchbar zu machen oder, um die Suchfunktion aus der eigenen Applikation heraus aufzurufen. Letzteres soll heute das Thema sein.

Zugriff per ADO.NET

Gute Nachricht für die .NET-Welt: der Zugriff ist recht bequem über OLE-DB möglich. Zum Abfragen kommt somit ADO.NET und die SQL-Syntax zum Einsatz.

Als Connection String dient die folgende Zeichenfolge:

Provider=Search.CollatorDSO;Extended Properties='Application=Windows'        
      

Eine Abfrage könnt wie folgt aussehen:

SELECT "System.FileName","System.DateModified","System.Size","System.ItemType"
FROM SYSTEMINDEX..SCOPE()
WHERE "System.FileName" LIKE '%fox%'        
      

In diesem Beispiel lassen wir uns alle Dateien aus dem Index anzeigen, die den Suchbegriff "fox" beinhalten.

Am besten starten Sie mit diesem Beispiel für den Zugriff über ADO.NET/SQL. Eine umfassende Beschreibung ist in der MSDN Library zu finden.

Abfragesprache

Die einfache Abfrage des Vista-Suchindex aus eigenen Programmen beeindruckt, doch nutzen Benutzer die Vista-Suche ja nicht mithilfe von SQL, sondern mit einer anderen Abfragesprache, die auf Schlüsselworte wie "AND" und "OR" reagiert.

Diese Abfragesyntax nennt sich Advanced Query Syntax (AQS) und steht ebenfalls – diesmal als COM-Komponente – zur Verfügung. Sie nimmt eine Abfrage wie z.B. "chess OR titans" entgegen und liefert uns das passende SQL, welches wir für die Abfrage über ADO.NET verwenden können. Schauen Sie sich einfach den dazugehörigen Beispielcode einmal näher an – es ist kinderleicht einzubauen.

Fazit: Bieten Sie Suchfunktionen in Ihrer Anwendung? Dann lassen Sie gleich "alles" durchsuchen, was Windows kennt. Über OLE-DB ist das nicht nur bequem und gehorcht auf bekannte SQL-Befehle, sondern auch unabhängig von der eingesetzten Programmiersprache problemlos möglich.

Morgen gehen wir dem Vista-Phänomen auf den Grund, warum es in der deutschen Version scheinbar sowohl C:\Programme als auch C:\Program Files gibt, jedoch im Explorer nur Programme zu sehen sind und warum beim Weg über die Kommandozeile der Programme-Ordner leer erscheint…

Viel Spaß & Erfolg mit der Dateisuche und bis morgen!

Ihr Neno Loje

Neno Loje
Freier Berater & Fachautor
Sie haben Fragen zu Visual Studio Team System (VSTS) oder Anregungen und Kommentare zu meinem Vista-Tagebuch? Dann freue ich mich auf Ihre Nachricht.

* *
* *