Advanced search
Moved to GitLab Premium in 13.9.
You can use advanced search for faster, more efficient search across the entire GitLab instance. Advanced search is based on Elasticsearch, a purpose-built full-text search engine you can horizontally scale to get results in up to a second in most cases.
You can find code you want to update in all projects at once to save maintenance time and promote innersourcing.
You can use advanced search in:
- Projects
- Issues
- Merge requests
- Milestones
- Users
- Epics (in groups only)
- Code
- Comments
- Commits
- Project and group wikis
Enable advanced search
- On GitLab.com, advanced search is enabled for groups with paid subscriptions.
- For self-managed GitLab instances, an administrator must enable advanced search.
Syntax
Advanced search uses Elasticsearch syntax. The syntax supports both exact and fuzzy search queries.
Syntax | Description | Example |
---|---|---|
" | Exact search | "gem sidekiq" |
~ | Fuzzy search | J~ Doe |
| | Or | display | banner |
+ | And | display +banner |
- | Exclude | display -banner |
* | Partial | bug error 50* |
\ | Escape | \*md |
# | Issue ID | #23456 |
! | Merge request ID | !23456 |
User search
Ability to refine user search introduced in GitLab 15.10.
When you search for a user, a fuzzy query is used by default. You can refine user search with Elasticsearch syntax.
Code search
Syntax | Description | Example |
---|---|---|
filename: | Filename | filename:*spec.rb |
path: | Repository location 1 | path:spec/workers/ |
extension: | File extension without . 2
| extension:js |
blob: | Git object ID 2 | blob:998707* |
-
path:
returns matches for full or partial paths. -
extension:
andblob:
return exact matches only.
Examples
Query | Description |
---|---|
rails -filename:gemfile.lock | Returns rails in all files except the gemfile.lock file. |
RSpec.describe Resolvers -*builder | Returns RSpec.describe Resolvers that does not start with builder . |
bug | (display +banner) | Returns bug or both display and banner . |
helper -extension:yml -extension:js | Returns helper in all files except files with a .yml or .js extension. |
helper path:lib/git | Returns helper in all files with a lib/git* path (for example, spec/lib/gitlab ). |
Known issues
- You can only search files smaller than 1 MB. For more information, see issue 195764. For self-managed GitLab instances, an administrator can configure this setting.
- You can use advanced search on the default branch of a project only. For more information, see issue 229966.
-
The search query must not contain any of the following characters:
. , : ; / ` ' = ? $ & ^ | < > ( ) { } [ ] @
For more information, see issue 325234.
- Search results show only the first match in a file. For more information, see issue 668.