Eine Desktopsuche, auch Dateisuche, durchsucht den gesamten PC, also Festplatten und SSDs. In Hinblick auf Mobilgeräte kann man auch allgemeiner von Dateisystemsuche sprechen. Bei Rechnernetzen, also dem Mitdurchsuchen von Netzlaufwerken und Dateiservern, sagt man Netzwerksuche (netzwerkweite Suche). Alle grafischen Betriebssysteme enthalten eine Desktopsuche, es gibt auch spezielle Desktop-Suchprogramme.
Dem gegenüber stehen Suchmaschinen wie Google, Bing oder Yahoo, mit denen das Internet durchsucht wird.
„Klassische“ Suche und indizierte Suche
Unterschieden wird zwischen der klassischen Suche, die direkt das Dateisystem durchforstet und einer Index-basierten Suche, bei der in regelmäßigen Abständen der gesamte Datenbestand des Computers eingelesen, gefiltert, indiziert und in einer Datenbank gespeichert wird. Bei der Suche wird dann nur die Datenbank durchsucht, nicht das ganze Dateisystem, wodurch die Anzeige der Treffer beinahe in Echtzeit möglich ist.
Vorläufer und Pionier indexbasierter Desktop-Suchsysteme ist das Unix-Tool locate. Dieses klassische Kommandozeilenprogramm durchsucht einen Index des Dateisystems, der in regelmäßigen Abständen von einem cron-Job aktualisiert wird. Ursprünglich unterstützte locate lediglich das Suchen nach Dateinamen. Im Laufe der Zeit wurde es jedoch immer mehr erweitert, unter anderem um Reguläre Ausdrücke. Auch heute noch (2011) ist es ein wichtiger Helfer. Im Vergleich zu modernen Desktop-Suchen hat locate jedoch einen entscheidenden Nachteil: Es bezieht sich rein auf Dateinamen, nicht auf deren Zusammenhänge, Dateitypen oder Inhalte (reine Dateisuche). Auch reagiert locate nicht in Echtzeit auf Änderungen im Dateisystem, sondern erst nach Aktualisierung des Dateisystem-Index. Dadurch sind die von locate zurückgelieferten Inhalte möglicherweise nicht mehr aktuell.
Für jede Suchanfrage die Festplatte erneut zu durchsuchen, war in der Vergangenheit sehr verbreitet, etwa unter Unixen bei find. Der Suchauftrag erzeugt dabei eine sehr hohe Systemlast, da je nach Suche jeder Dateiname, manchmal auch der Inhalt jeder Datei, mit dem spezifizierten Suchmuster verglichen werden muss. Diese hohe Belastung, insbesondere bei feststromquellenunabhängigen Computern, sowie die dafür aufzubringende Wartezeit sind unter Anwendungsbedingungen kaum hinnehmbar, da die Suche meist ohnehin auf einen definierten Kreis von Dateien (zum Beispiel alle IRC-Protokolle) beschränkt ist. Zudem ist diese Art der Suche recht unspezifisch und entweder gar nicht oder nur mit anfängerüberschreitenden Kenntnissen (zum Beispiel der naheliegenden Kombination von grep mit find) erweiterbar. Mit grep unter Unix, find unter IBM/Windows und ähnlichen Programmen entstand eine echte inhaltsbasierte Suche (Volltextsuche), wenn auch nur auf weitgehend reine Textdateien eingeschränkt.
Deshalb wurden spezialisierte Desktop-Suchsysteme entwickelt. Sie indizieren automatisch eine vorgegebene Gruppe von Dateien (zum Beispiel alle Dateien im Homeverzeichnis des jeweiligen Anwenders oder alle im Dateisystem für den Benutzer lesbaren Dateien), filtern, analysieren und sortieren deren Inhalte nach deren jeweiligem Typ (zum Beispiel OpenDocument, PDF, Bilddateien, E-Mails usw.) und legen die Ergebnisse in ihrem Index ab. Über geänderte und neu angelegte Dateien wird der Index entweder von den Programmen selbst oder durch Überwachung des Dateisystems (zum Beispiel via Inotify) informiert.
Der Anwender befragt den Index dann mittels in Programmen integrierter oder in Einzelprogrammen angebotener Funktionen. Intern erfolgt der Zugriff oft mittels einer einheitlichen, standardisierten Datenbankschnittstelle (zum Beispiel SQL), die teils auch dem Benutzer direkt zur Verfügung gestellt wird. Diese sehr stark spezifizierbare (zum Beispiel durch reguläre Ausdrücke) und schnelle (augenscheinlich fast instantan ablaufende) Suche stellt einen erheblichen Produktivitäts- und Zeitgewinn dar. In die normalen Dateidialoge integriert, können so schnell und effizient Dateien anhand von Suchresultaten gefunden und ausgewählt werden, ohne eine lange Zeit mit der Navigation im Dateisystem zu verbringen.
Das Indizieren externer Speicherorte in verteilten Systemen ist aufwendiger (weil diese unter Umständen nicht dauerhaft verfügbar sind) in Bezug auf Synchronisation und erfordert auch zusätzliche Rechtevergabe (Freigabe auf Indizierung durch andere Benutzer). Hier bieten sich Proxyserver-gestützte zentralisierte Suchlösungen an. Analoges gilt für webbasierte externe Datenspeicherung (Cloud Computing).
Arten der Desktopsuche
- Systemweite Suche
- Werkzeuge dieser Art sind etwa Lookeen Search, Superior Search, Strigi, Meta Tracker, Beagle, Exalead, xfriend, Copernic Desktop Search, ehemals Google Desktop, Windows Search, Yahoo Desktop Search, Spotlight oder freie Open-Source-Software wie Open Semantic Search, Lucene oder Recoll. Diese Art der Suche soll eine möglichst umfangreiche und universale Abbildung der Dateien eines Systems bieten. Der Support für Google Desktop wurde 2011 eingestellt, daher stehen auch keine Plugins mehr bereit.
- Spezifische Suche
- Kleine, in die Benutzerapplikationen integrierte Suchfelder dienen zum Durchsuchen von Listen, Sammlungen, Datenbanken etc. (Suchfunktion). Diese Suchtypen werden mehr und mehr in die systemweiten Suchapplikationen integriert.
- Die absolute Suche
- Jede durch einen Menschen interpretierbare Information ist in der Suche entsprechend abgebildet. Jede Applikation, die ihre Informationen in die Suche integriert, stellt eine Schnittstelle zur Suchapplikation zur Verfügung. Diese Methode kann sich auch direkt in die Dateisystem-Schicht eines Betriebssystems integriert sein, um einen noch intuitiveren Zugriff zu gewähren und eine assoziative Dateiverwaltung zu ermöglichen. Die assoziative Dateiverwaltung überschneidet sich von der Funktionsweise her oftmals mit der Desktopsuche, nicht selten gehen beide Techniken Hand in Hand. Aktuelle Beispiele für diese Methode sind etwa:
- Suchfunktionen in KDE, die seit der Entwicklung von Version 4.0 mehr und mehr zusammenwachsen. Es wurden zahlreiche Suchfunktionen und -schnittstellen für KDE entwickelt, die tendenziell immer besser kooperieren. Ein Beispiel hierfür ist die enge Verknüpfung von Katapult mit Kat und Beagle, und Anwendungen wie beispielsweise Amarok.
- Suchfunktionen in BeOS/Zeta, wo über assoziative Dateiverwaltung sowohl eine Abstraktion, als auch komfortabler Zugriff geschieht.
Möglichkeiten und Gefahren
Die zentrale Speicherung und Abbildung der Daten eines Rechners ermöglicht ein viel intuitiveres Auffinden und neue Umgangsformen mit den Daten. Sie birgt jedoch auch Gefahren in sich: Die Daten sind zentral gespeichert, nach den Wünschen einiger Anbieter (zum Beispiel Google) sogar zentral auf Servern im Internet. Dies bietet sowohl Missbrauchspotential für Wirtschaftsspionage, Cracker und Regierungen, für die ein derartiger zentraler Datenpool eine verlockende Möglichkeit zur Verbrechensaufklärung darstellt, aber auch zu präventiver Überwachung Einzelner missbraucht werden kann.
Funktionsweise
Grundlage aller dieser Systeme ist die Nutzung einer Datenbank zur Aufbewahrung der Meta-Informationen sowie die Bereitstellung geeigneter Schnittstellen/APIs für den Zugriff auf diese Datenbank. Die Aufbereitung der Informationen in dieser Datenbank für den Anwender kann dann auf verschiedene Arten erfolgen.
Darstellung über Suchprogramme
Diese Methode ist programmiertechnisch gesehen einfach und robust. Die Suche geschieht über eigene Anwenderprogramme. Es sind keine gravierenden Eingriffe in die Funktionsweise des zugrunde liegenden Betriebssystems notwendig, dementsprechend fehlt aber auch die intuitive Integration, etwa in Dateidialoge und ähnliches.
Beispiele für diese Methode sind etwa Open Semantic Desktop Search, Recoll, Lookeen, Google Desktop Search, regain, DocFetcher, xfriend, Windows Search, Copernic Desktop Search, Yahoo Desktop Search, exalead desktop free oder Beagle (in seiner Grundausstattung).
Integration in die Dateisystem-Schicht (assoziative Dateiverwaltung)
Aktuell tendieren die Entwicklungen in Richtung einer assoziativen Dateiverwaltung, der Darstellung über die Dateisystem-Schicht/das virtuelle Dateisystem (VFS) der Betriebssysteme. Dies kann auf verschiedene Arten erfolgen, die allesamt gewisse Vor- und Nachteile haben können. Eine derartige Integration ermöglicht eine besonders intuitive Bedienung, da der Anwender im Idealfall nicht zwischen gefundenen und hierarchisch gespeicherten Daten unterscheiden muss.
Eine bereits ausgereifte derartige Entwicklung befindet sich ebenfalls in den BeOS-basierten Betriebssystemen, wo es auf das Dateisystem BFS über das VFS des Betriebssystems aufgesetzt wurde. Es bietet eine sehr schnelle, anwenderfreundliche Desktopsuche aus allen Applikationen heraus, und hat sich als überaus stabil erwiesen.
Die großen freien Desktop-Umgebungen KDE und Gnome, aber auch der Finder in Apples macOS bieten seit Längerem über ihr virtuelles Dateisystem vergleichbare Dienste an. Die Referenzierung von Dateien auf der Basis ihrer Meta-Informationen scheint in Zukunft ein wesentlicher Ansatz zu sein, und könnte, besonders für unerfahrene Benutzer, zu einer wesentlichen Erleichterung im Umgang mit Computern führen. Die Einbindung dieser Funktionen über ein derartiges VFS bietet zahlreiche Vorteile für Entwickler, erfordert es aber auch, dass Applikationen, die diese Funktionen direkt nutzen möchten, nicht direkt auf das Dateisystem zugreifen dürfen, sondern dies über die entsprechenden Systembibliotheken unter der Nutzung des VFS tun müssen. Jedoch gibt es mittlerweile Ansätze, die diese VFS-Systeme direkt in das Dateisystem einbinden, unter Linux etwa über das FUSE-Dateisystem.
Microsoft arbeitete zeitweise an WinFS, einer SQL-basierten Dateisystemschicht, die prädestiniert für eine systemweite Desktopsuche gewesen wäre. Eine derart tiefgreifende Integration in das Betriebssystem-VFS von Windows, wie Microsoft das vorgesehen hatte, führte aber zu unerwarteten Problemen. Microsoft hat im Juni 2006 eine Einstellung des Projekts bekannt gegeben.
Suchwerk funktionierte ähnlich, ist aber einigen potentiellen Problemen aus dem Weg gegangen, indem es seine Daten in Form eines Netzwerkslaufwerkes darstellt. Mittlerweile gibt es das Unternehmen nicht mehr.