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
  • 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.

SyntaxDescriptionExample
"Exact search"gem sidekiq"
~Fuzzy searchJ~ Doe
|Ordisplay | banner
+Anddisplay +banner
-Excludedisplay -banner
*Partialbug error 50*
\Escape\*md
#Issue ID#23456
!Merge request ID!23456

Introduced in GitLab 15.10.

In user search, a fuzzy query is used by default. You can refine your search with Elasticsearch syntax.

SyntaxDescriptionExample
filename:Filenamefilename:*spec.rb
path:Repository location 1 path:spec/workers/
extension:File extension without . 2 extension:js
blob:Git object ID 2 blob:998707*
  1. path: returns matches for full paths or subpaths.
  2. extension: and blob: return exact matches only.

Examples

QueryDescription
rails -filename:gemfile.lockReturns rails in all files except the gemfile.lock file.
RSpec.describe Resolvers -*builderReturns RSpec.describe Resolvers that does not start with builder.
bug | (display +banner)Returns bug or both display and banner.
helper -extension:yml -extension:jsReturns helper in all files except files with a .yml or .js extension.
helper path:lib/gitReturns 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 change this limit.
  • You can only use advanced search 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.