Advanced search
{{< details >}}
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
{{< /details >}}
{{< history >}}
- Moved to GitLab Premium in 13.9.
{{< /history >}}
Use advanced search to find exactly what you need across your entire GitLab instance.
With advanced search:
- Identify code patterns across all projects to refactor shared components more efficiently.
- Locate security vulnerabilities in dependencies across your entire organization at once.
- Track usage of deprecated functions or libraries throughout all repositories.
- Find discussions buried in issues, merge requests, or comments.
- Discover existing solutions instead of reinventing functionality that already exists.
Advanced search works in projects, issues, merge requests, milestones, users, epics, code, comments, commits, and wikis.
Enable advanced search
- For GitLab.com and GitLab Dedicated, advanced search is enabled in paid subscriptions.
- For GitLab Self-Managed, an administrator must enable advanced search.
Available scopes
Scopes describe the type of data you’re searching. The following scopes are available for advanced search:
Search level | Code | Comments | Commits | Epics | Issues | Merge requests | Milestones | Projects | Users | Wikis | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|
Global | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | An administrator can disable global search scopes. On GitLab Self-Managed, global search is not available when limited indexing is enabled by default. An administrator can enable global search for limited indexing. |
Group | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Project | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Syntax
{{< history >}}
- Refining user search introduced in GitLab 15.10.
{{< /history >}}
Advanced search uses simple_query_string
,
which supports both exact and fuzzy queries.
When you search for a user, the fuzzy
query is used by default.
You can refine user search with simple_query_string
.
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
|
Code search
Syntax | Description | Example |
---|---|---|
filename:
| Filename | filename:*spec.rb
|
path:
| Repository location (full or partial matches) | path:spec/workers/
|
extension:
| File extension without . (exact matches only)
| extension:js
|
blob:
| Git object ID (exact matches only) | blob:998707*
|
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 search only files smaller than 1 MB. For more information, see issue 195764. For GitLab Self-Managed, an administrator can configure the Maximum file size indexed setting.
- You can use advanced search only on the default branch of a project. 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.