gitlab-ce/doc/user/search/advanced_search.md

9.6 KiB

stage group info title
AI-powered Global Search To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments 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 across your entire organization's codebase and dependencies using advanced vulnerability management.
  • 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.

Prerequisites:

To use advanced search:

  1. On the left sidebar, select Search or go to.
  2. In the search box, enter your search term.

You can also use advanced search in a project or group.

Available scopes

Scopes describe the type of data you're searching. The following scopes are available for advanced search:

Scope Global 1 2 Group Project
Code {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Comments {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Commits {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Epics {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="dash-circle" >}} No
Issues {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Merge requests {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Milestones {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Projects {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="dash-circle" >}} No
Users {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes
Wikis {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes {{< icon name="check-circle-filled" >}} Yes

Footnotes:

  1. 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.
  2. On GitLab.com, global search is not enabled for code, commits, and wikis.

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