Veröffentlicht am: 25. Juni 2025
7 Minuten Lesezeit
So findet diese neue GitLab-Funktion exakte Treffer, nutzt Regex-Muster und zeigt kontextbezogene Ergebnisse in Terabyte-großen Codebasen an.

Kurz gesagt: Was wäre, wenn du jede Codezeile in 48 TB an Repositories in Millisekunden finden könntest? GitLabs neue Exact Code Search macht genau das möglich – mit präzisen Treffern, leistungsstarker Regex-Unterstützung und kontextbezogenen mehrzeiligen Ergebnissen, die die Arbeit mit großen Codebasen revolutionieren.
Jeder, der mit Code arbeitet, kennt die Frustration bei der Suche über Repositories hinweg. Egal ob du als Entwickler(in) einen Fehler debuggst, als DevOps-Ingenieur(in) Konfigurationen untersuchst, als Sicherheitsanalyst(in) nach Schwachstellen suchst, als technische(r) Redakteur(in) Dokumentationen aktualisierst oder als Manager(in) Implementierungen überprüfst – du weißt genau, was du brauchst, aber herkömmliche Suchwerkzeuge lassen dich oft im Stich.
Diese konventionellen Tools liefern Dutzende von False Positives, bieten nicht den nötigen Kontext zum Verständnis der Ergebnisse und werden mit wachsenden Codebasen immer langsamer. Das Ergebnis? Wertvolle Zeit wird mit der Suche nach der Nadel im Heuhaufen verschwendet, anstatt Software zu entwickeln, zu sichern oder zu verbessern.
GitLabs Code-Suchfunktion basierte bisher auf Elasticsearch oder OpenSearch. Diese eignen sich zwar hervorragend für die Suche in Issues, Merge Requests, Kommentaren und anderen Daten mit natürlicher Sprache, wurden aber nicht speziell für Code entwickelt. Nach der Evaluierung zahlreicher Optionen haben wir eine bessere Lösung entwickelt.
40 Stunden weniger Arbeit pro Woche: Cube nutzt GitLab Duo für mehr Effizienz. Codevorschläge, Testgenerierung und KI-Chat verhelfen zu einer besseren Arbeitsweise – schnell, sicher und effizient. Erfahre, wie Cube mit GitLab Duo den KI-Einsatz im SDLC perfektioniert. Erfolgsstory lesen
Mit GitLabs Exact Code Search, derzeit in der Beta-Phase und angetrieben von Zoekt (ausgesprochen "sukt", niederländisch für "sucht"). Zoekt ist eine Open-Source-Code-Suchmaschine, die ursprünglich von Google entwickelt und jetzt von Sourcegraph gepflegt wird – speziell konzipiert für schnelle, präzise Code-Suche im großen Maßstab. Wir haben sie mit GitLab-spezifischen Integrationen, Verbesserungen für Unternehmensmaßstäbe und nahtloser Integration des Berechtigungssystems erweitert.
Diese Funktion revolutioniert, wie du Code findest und verstehst, mit drei Hauptfunktionen:
1. Exact Match-Modus: Null False Positives
Im Exact Match-Modus liefert die Suchmaschine nur Ergebnisse, die exakt deiner Suchanfrage entsprechen, und eliminiert False Positives. Diese Präzision ist unbezahlbar beim:
2. Regular Expression-Modus: Leistungsstarkes Pattern Matching
Für komplexe Suchanforderungen ermöglicht der Regular Expression-Modus die Erstellung ausgefeilter Suchmuster:
3. Mehrzeilige Treffer: Code im Kontext sehen

Statt nur eine einzelne Zeile mit deinem Suchbegriff zu sehen, erhältst du den umgebenden Kontext, der für das Verständnis des Codes entscheidend ist. Das eliminiert die Notwendigkeit, für grundlegendes Verständnis in Dateien zu klicken, und beschleunigt deinen Workflow erheblich.
Schauen wir uns an, wie diese Funktionen zu echten Produktivitätssteigerungen führen:
Vor Exact Code Search: Fehlermeldung kopieren, durch Dutzende Teiltreffern in Kommentaren waten, mehrere Dateien durchklicken.
Mit Exact Code Search: Exakte Fehlermeldung einfügen → Exact Match findet präzise Code-Stelle mit Kontext → Sekunden statt Minuten.
Mit Exact Code Search: Schlüsselmethoden im Exact Match-Modus finden, mehrzeilige Treffer für Implementierungsdetails prüfen, Regex für ähnliche Muster nutzen → mentale Code-Karte in Minuten statt Stunden.
Mit Exact Code Search: Exact Match zeigt alle Vorkommen → Kontext für Verwendungsmuster → vollständige Impact-Information → keine übersehenen Instanzen mehr.
Sicherheitsteams erstellen Regex-Patterns für bekannte Schwachstellen, suchen Repository-übergreifend und identifizieren Probleme mit Kontext für Risikobewertung.
Ähnliche Implementierungen über Projekte identifizieren, Standardisierungsmöglichkeiten entdecken, Code-Wiederverwendung fördern.
Zoekts Geschwindigkeit basiert auf positionalen Trigrammen – Indexierung von 3-Zeichen-Sequenzen mit exakten Positionen. Das löst das False-Positive-Problem traditioneller Suchmaschinen.
Traditionelle Volltextsuchmaschinen wie Elasticsearch tokenisieren Code in Wörter und verlieren Positionsinformationen. Suche nach getUserId() könnte user, get, Id verteilt über Dateien finden (False Positives).
Zoekts positionale Trigramme indexieren exakte Sequenzen: get, etU, tUs, Use, ser, erI, rId, Id(, d() – alle in korrekter Reihenfolge und Position. Nur echte getUserId()-Vorkommen werden gefunden.
Resultat: Suchanfragen mit zuvor Hunderten irrelevanter Ergebnisse liefern jetzt nur präzise Treffer. Das war eine der meistgewünschten Funktionen – Entwickler verloren erhebliche Zeit beim Durchsuchen von False Positives.
Zoekt ist zusätzlich für Regular Expression-Performance im großen Maßstab optimiert und wandelt Regex-Muster in effiziente Trigramm-Abfragen um.
Auf GitLab.com indexiert und durchsucht Exact Code Search über 48 TB Code-Daten (Millionen Repositories, Tausende Namespaces) mit Millisekunden-Antwortzeiten. Das System nutzt selbstregistrierende Nodes, intelligentes Sharding, automatisches Load Balancing und native GitLab-Berechtigungsfilterung.
Für detaillierte Architektur-Informationen (Orchestrierung, Skalierungs-Lösungen, Deployment-Challenges) siehe das englische Design-Dokument und den englischen Originalartikel.
Der Einstieg ist einfach – Exact Code Search ist bereits standardmäßig für Premium- und Ultimate-Gruppen auf GitLab.com aktiviert (über 99% der berechtigten Gruppen).
Such-Modifikatoren für präzisere Ergebnisse:
| Abfrage-Beispiel | Was es bewirkt |
|---|---|
file:js | Sucht nur in Dateien, die "js" im Namen enthalten |
foo -bar | Findet "foo", schließt aber Ergebnisse mit "bar" aus |
lang:ruby | Sucht nur in Ruby-Dateien |
sym:process | Findet "process" in Symbolen (Methoden, Klassen, Variablen) |
Profi-Tipp: Für effiziente Suchen beginne spezifisch und erweitere bei Bedarf.
file:- undlang:-Filter erhöhen die Relevanz dramatisch.
Stapele mehrere Filter für Präzision:
is_expected file:rb -file:spec
Das findet "is_expected" in Ruby-Dateien ohne "spec" im Namen.
Nutze reguläre Ausdrücke für leistungsstarke Muster:
token.*=.*[\"']
Sieh dir diese Suche im GitLab Zoekt Repository an.
Die Suche hilft, hartcodierte Passwörter zu finden, die ein Sicherheitsproblem darstellen können.
Für detaillierte Syntax-Informationen siehe die Exact Code Search-Dokumentation.
GitLab.com: Exact Code Search ist in Beta für Premium/Ultimate-Nutzer (über 99% der lizenzierten Gruppen haben Zugriff). Die UI nutzt automatisch Zoekt, wenn verfügbar.
Self-Managed: Kubernetes/Helm-Deployment mit gitlab-zoekt Helm Chart am besten unterstützt. Weitere Installationsmethoden in Entwicklung.
Für vollständige Deployment-Anleitungen (Systemanforderungen, Skalierungs-Konfiguration, Installationsoptionen) siehe den englischen Originalartikel.
Während Exact Code Search bereits leistungsstark ist, arbeiten wir kontinuierlich an Verbesserungen:
Bleib dran für Updates zum Übergang von Beta zu General Availability.
GitLabs Exact Code Search löst die frustrierendsten Aspekte der Code-Suche: keine irrelevanten Ergebnisse mehr, keine verpassten Treffer, kein Durchklicken für grundlegendes Verständnis, keine Performance-Probleme bei wachsenden Codebasen.
Die Auswirkungen gehen über individuelle Produktivität hinaus:
Exact Code Search ist eine bessere Art, Code zu verstehen und damit zu arbeiten. Hör auf zu suchen und fang an zu finden.
Wir würden gerne von dir hören! Teile deine Erfahrungen, Fragen oder Feedback zu Exact Code Search in unserem Feedback-Issue. Dein Input hilft uns, Verbesserungen und neue Funktionen zu priorisieren.
Bereit für smartere Code-Suche? Erfahre mehr in unserer Dokumentation oder probiere es jetzt aus in deinen Premium/Ultimate-Namespaces. Noch kein GitLab-Nutzer? Teste kostenlos GitLab Ultimate mit Duo!
Dieser Blogbeitrag hat gefallen oder es gibt Fragen oder Feedback? Ein neues Diskussionsthema im GitLab-Community-Forum erstellen und Eindrücke austauschen.
Feedback teilen