# Suchfunktion

Eine Suchfunktion ist eine Funktion eines Produkts (oft Software), die es erlaubt, einen bestimmten Datensatz in einer Datenmenge (schnell) zu finden.

## Verfahren

Die Suche läuft dabei wie folgt ab:
* Der Suchende legt die Suchkriterien und weitere Parameter zur Steuerung der Funktion fest.
* Es wird ein Verfahren angewendet um den Datenbestand mit den Suchkriterien zu vergleichen.
* Es wird der erste oder alle oder die ersten N Treffer des Datenbestands, die zu den Suchkriterien passen, verwendet.

## Beispiel Telefonbuch

Ein Beispiel aus dem Alltag ist das Telefonbuch. Das verwendete Verfahren ist die index-sequentielle Suche.
* Zunächst wird über die Reiter am Rand des Telefonbuchs (Index) der erste Buchstabe des gesuchten Namens aufgeschlagen.
* Danach werden die nachfolgenden Seiten einzeln (sequentiell) durchlaufen, bis der gesuchte Name gefunden ist.
* Da das Telefonbuch nach Nachnamen und Vornamen sortiert ist, kann die Suche weiter beschleunigt werden, indem z. B. immer 5 Seiten überblättert werden und dann verglichen wird, ob der zweite Buchstabe des Nachnamens passt. Falls er kleiner ist, springt man wieder einige Seiten zurück. Ansonsten springt man entweder weiter oder fährt mit der sequentiellen Suche fort.

## Suchfunktionen in Computerprogrammen

In Computerprogrammen sind sehr oft komfortable Suchfunktionen verfügbar, die ein schnelles (Dauer wenige Sekunden) Durchsuchen riesiger Datenbestände (Milliarden Datensätze) ermöglichen. Wesentliche Voraussetzung für die schnelle Suche ist die Sortierung bzw. Indizierung der Datenbestände. Die Entwicklung und Realisierung von Suchalgorithmen ist ein Teilgebiet der Informatik.
Der Funktionsumfang häufig verwendeter Suchfunktionen reicht von sehr einfach bei einem einfachen Texteditor (z. B. Notepad.exe bei MS Windows) über detailliert (z. B. grep-Programm) bis zu sehr komplex (SQL-Datenbanken).
Die Verfügbarkeit einer bedarfsgerechten Suchfunktion ist heute die Grundvoraussetzung für den sinnvollen Einsatz von Programmen. Fehlt eine Suchfunktion, ist dies eine Einschränkung, die es nahelegt, ein anderes Produkt mit ähnlicher Funktion zu verwenden, das eine Suchfunktion bereithält. Selbst eine einfache Suchfunktion ergibt eine spürbare Steigerung der Produktivität beim Arbeiten mit der Anwendung.

## Intelligente Suchfunktion

Maß für die Intelligenz der Funktion ist das Verhältnis aus dem Aufwand für die Eingabe von Suchkriterien zur erzielten Treffergenauigkeit bei Einhaltung der akzeptablen Zeit, nach der das erste Suchergebnis verfügbar sein soll. So sollte eine Internet-Suchmaschine nach wenigen Sekunden bei Eingabe eines einzelnen Stichworts die Adresse der Internetseiten zurückliefern, die den maximalen Bezug zu diesem Stichwort haben, und zwar nach absteigender Relevanz sortiert. Tipp- oder Rechtschreibfehler müssen automatisch erkannt werden und ggf. Korrekturvorschläge gemacht werden. Die Eingabe von Suchkriterien unter Verwendung einer bestimmten Syntax ist nur sehr eingeschränkt akzeptabel. Produkte mit einer 'intelligenten' Suchfunktion waren in der jüngsten Vergangenheit sehr erfolgreich.

## Komplexe Suchfunktion

Bei komplexen Suchfunktionen spielt der Aufwand für die Eingabe der Suchkriterien eine untergeordnete Rolle. Sie wird von ausgebildeten Experten durchgeführt und kann u. U. viele Tage dauern. Fast immer ist dazu das Erlernen einer umfangreichen Syntax einer spezialisierten Abfragesprache notwendig. Im Vordergrund steht die Präzision der Suchergebnisse, die Geschwindigkeit und der Ressourcenverbrauch. Es sollte möglich sein, bei der Durchführung zusätzliche Informationen zu gewinnen, z. B. statistische Daten. Bei einem Suchdurchlauf sollte man gleichzeitig nach mehreren Kriterien suchen können. Komplexe Suchfunktionen müssen mit riesigen Datenmengen zurechtkommen, z. B. Milliarden von Dateien oder Datenbanken mit mehreren Terabyte Umfang.