Exact Code Search
Introduced in GitLab 15.9 with a flag named index_code_with_zoekt
for indexing and search_code_with_zoekt
for searching. Both are disabled by default.
Usage
When performing any Code search in GitLab it will choose to use “Exact Code Search” powered by Zoekt if the project is part of an enabled Group.
The main differences between Zoekt and advanced search are that Zoekt provides exact substring matching as well as allows you to search for regular expressions. Since it allows searching for regular expressions, certain special characters will require escaping. Backslash can escape special characters and wrapping in double quotes can be used for phrase searches.
Syntax
This table shows some example queries for exact code search.
Query | Description |
---|---|
foo | Returns files that contain foo
|
"class foo" | Returns files that contain the exact string class foo
|
class foo | Returns files that contain both class and foo
|
foo or bar | Returns files that contain either foo or bar
|
class Foo | Returns files that contain class (case insensitive) and Foo (case sensitive) |
class Foo case:yes | Returns files that contain class and Foo (both case sensitive) |
foo -bar | Returns files that contain foo but not bar
|
foo file:js | Searches for foo in files with names that contain js
|
foo -file:test | Searches for foo in files with names that do not contain test
|
foo lang:ruby | Searches for foo in Ruby source code |
foo f:\.js$ | Searches for foo in files with names that end with .js
|
foo.*bar | Searches for strings that match the regular expression foo.*bar
|