在极狐GitLab 中搜索

极狐GitLab 提供三种搜索类型:基本搜索高级搜索、和精确代码搜索

对于代码搜索,GitLab 会按照以下顺序使用这些搜索类型:

  • 精确代码搜索: 支持精确匹配和正则表达式模式。
  • 高级搜索: 在精确代码搜索不可用时使用。
  • 基本搜索: 在精确代码搜索和高级搜索不可用时使用,或者当搜索的是非默认分支时使用。此搜索类型不支持团队或全局搜索。

指定搜索类型

  • 在极狐GitLab 17.4 中引入。

要指定搜索类型,可以设置 search_type URL 参数,如下所示:

search_type 替代了已弃用的 basic_search 参数。

限制搜索访问权限

前提条件:

  • 需要管理员权限才能访问实例。

默认情况下,/search 请求和全局搜索对未认证用户开放。

要将 /search 限制为仅认证用户可访问,可以执行以下操作之一:

要将全局搜索限制为仅认证用户可访问,启用 ops 功能标志 block_anonymous_global_searches

全局搜索范围

  • 在极狐GitLab 14.3 中引入。

为了提高实例全局搜索的性能,管理员可以通过禁用一个或多个 ops 功能标志 来限制搜索范围。

范围 功能标志 描述
代码 global_search_code_tab 启用时,全局搜索将包括代码。
提交记录 global_search_commits_tab 启用时,全局搜索将包括提交记录。
史诗 global_search_epics_tab 启用时,全局搜索将包括史诗。
问题 global_search_issues_tab 启用时,全局搜索将包括问题。
合并请求 global_search_merge_requests_tab 启用时,全局搜索将包括合并请求。
用户 global_search_users_tab 启用时,全局搜索和命令面板将包括用户。
Wiki global_search_wiki_tab 启用时,全局搜索将包括项目和 小组 Wiki

所有全局搜索范围在私有化部署实例中默认启用。

全局搜索验证

  • 问题搜索中的部分匹配支持已移除,在极狐GitLab 14.9 中 以功能标志 issues_full_text_search 的形式提供。默认情况下禁用。
  • 极狐GitLab 16.2 中全面启用。功能标志 issues_full_text_search 被移除。

全局搜索会忽略并将以下搜索视为滥用:

  • 少于两个字符的搜索词
  • 超过 100 个字符的搜索词(URL 搜索词不得超过 200 个字符)
  • 仅包含停用词的搜索词(例如,theandif
  • 未知的 scope(范围)
  • 非完全数字的 group_idproject_id
  • 包含不符合 Git 引用名称规则的特殊字符的 repository_refproject_ref

全局搜索只会对以下搜索显示错误:

  • 超过 4096 个字符的搜索
  • 超过 64 个词的搜索

问题搜索不支持部分匹配。
例如,当搜索问题中的 play 时,查询不会返回包含 display 的问题,但查询会匹配字符串的所有可能变体(例如,plays)。

自动补全建议

在输入搜索框时,系统将显示以下自动补全建议:

  • 项目和小组
  • 用户
  • 帮助页面
  • 项目功能(例如,里程碑)
  • 设置(例如,用户设置)
  • 最近查看的合并请求
  • 最近查看的问题和史诗
  • GitLab 专用的 Markdown 引用,用于项目中的问题

在所有极狐GitLab 中搜索

要在所有极狐GitLab 中搜索:

  1. 在左侧边栏顶部,选择 搜索或跳转到
  2. 输入您的搜索查询。您必须至少输入两个字符。
  3. Enter 进行搜索,或从列表中选择。

搜索结果将显示出来。要过滤结果,在左侧边栏选择过滤器。

在项目中搜索

要在项目中搜索:

  1. 在左侧边栏,选择 搜索或跳转到 并找到您的项目。
  2. 再次选择 搜索或跳转到 并输入您要搜索的字符串。
  3. Enter 进行搜索,或从列表中选择。

搜索结果将显示出来。要过滤结果,在左侧边栏选择过滤器。

按完整路径搜索项目

  • 在极狐GitLab 15.9 中引入,通过功能标志 full_path_project_search 提供,默认情况下禁用。
  • 在极狐GitLab 15.11 中全面启用。功能标志 full_path_project_search 被移除。

您可以通过输入项目的完整路径(包括项目所属的命名空间)在搜索框中搜索项目。在输入项目路径时,系统会显示 自动补全建议

例如:

  • gitlab-org/gitlab 将搜索 gitlab-org 命名空间下的 gitlab 项目。
  • gitlab-org/ 会显示属于 gitlab-org 命名空间的项目的自动补全建议。

将归档项目包含在搜索结果中

  • 在极狐GitLab 16.1 中引入,通过功能标志 search_projects_hide_archived 提供,默认情况下禁用。
  • 在极狐GitLab 16.6 中全面启用,适用于所有搜索范围。

默认情况下,归档项目不会出现在搜索结果中。
要将归档项目包含在搜索结果中:

  1. 在搜索页面的左侧边栏,勾选 包括已归档 复选框。
  2. 在左侧边栏选择 应用

搜索代码

要在项目中搜索代码:

  1. 在左侧边栏中,选择 搜索或转到 并找到你的项目。
  2. 再次选择 搜索或转到 并输入你要搜索的代码。
  3. Enter 键进行搜索,或从列表中选择。

代码搜索仅显示文件中的第一个搜索结果。若要在整个 GitLab 中搜索代码,请让管理员启用高级搜索

从代码搜索中查看 Git blame

  • 在极狐GitLab 14.7 中引入。

找到搜索结果后,你可以查看最后修改该行代码的作者。

  1. 在代码搜索结果中,将鼠标悬停在行号上。
  2. 在左侧,选择 查看 blame

按语言过滤代码搜索结果

  • 在极狐GitLab 15.10 中引入。

要按一种或多种语言过滤代码搜索结果:

  1. 在代码搜索页面的左侧边栏中,选择一种或多种语言。
  2. 在左侧边栏中,选择 应用

搜索提交 SHA

要搜索提交 SHA:

  1. 在左侧边栏中,选择 搜索或转到 并找到你的项目。
  2. 再次选择 搜索或转到 并输入你要搜索的提交 SHA。
  3. Enter 键进行搜索,或从列表中选择。

如果返回单一结果,GitLab 会自动跳转到该提交的详细信息,并提供返回搜索结果页面的选项。