在极狐GitLab 中搜索
极狐GitLab 提供三种搜索类型:基本搜索、高级搜索、和精确代码搜索。
对于代码搜索,GitLab 会按照以下顺序使用这些搜索类型:
- 精确代码搜索: 支持精确匹配和正则表达式模式。
- 高级搜索: 在精确代码搜索不可用时使用。
- 基本搜索: 在精确代码搜索和高级搜索不可用时使用,或者当搜索的是非默认分支时使用。此搜索类型不支持团队或全局搜索。
指定搜索类型
- 在极狐GitLab 17.4 中引入。
要指定搜索类型,可以设置 search_type
URL 参数,如下所示:
search_type
替代了已弃用的 basic_search
参数。
限制搜索访问权限
前提条件:
- 需要管理员权限才能访问实例。
默认情况下,/search
请求和全局搜索对未认证用户开放。
要将 /search
限制为仅认证用户可访问,可以执行以下操作之一:
-
限制公开可见性
(在 GitLab 17.6 中引入)。 - 禁用
ops
功能标志allow_anonymous_searches
(在 GitLab 16.7 中引入)。
要将全局搜索限制为仅认证用户可访问,启用 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 个字符)
- 仅包含停用词的搜索词(例如,
the
、and
或if
) - 未知的
scope
(范围) - 非完全数字的
group_id
或project_id
- 包含不符合 Git 引用名称规则的特殊字符的
repository_ref
或project_ref
全局搜索只会对以下搜索显示错误:
- 超过 4096 个字符的搜索
- 超过 64 个词的搜索
问题搜索不支持部分匹配。
例如,当搜索问题中的 play
时,查询不会返回包含 display
的问题,但查询会匹配字符串的所有可能变体(例如,plays
)。
自动补全建议
在输入搜索框时,系统将显示以下自动补全建议:
- 项目和小组
- 用户
- 帮助页面
- 项目功能(例如,里程碑)
- 设置(例如,用户设置)
- 最近查看的合并请求
- 最近查看的问题和史诗
- GitLab 专用的 Markdown 引用,用于项目中的问题
在所有极狐GitLab 中搜索
要在所有极狐GitLab 中搜索:
- 在左侧边栏顶部,选择 搜索或跳转到。
- 输入您的搜索查询。您必须至少输入两个字符。
- 按 Enter 进行搜索,或从列表中选择。
搜索结果将显示出来。要过滤结果,在左侧边栏选择过滤器。
在项目中搜索
要在项目中搜索:
- 在左侧边栏,选择 搜索或跳转到 并找到您的项目。
- 再次选择 搜索或跳转到 并输入您要搜索的字符串。
- 按 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 中全面启用,适用于所有搜索范围。
默认情况下,归档项目不会出现在搜索结果中。
要将归档项目包含在搜索结果中:
- 在搜索页面的左侧边栏,勾选 包括已归档 复选框。
- 在左侧边栏选择 应用。
搜索代码
要在项目中搜索代码:
- 在左侧边栏中,选择 搜索或转到 并找到你的项目。
- 再次选择 搜索或转到 并输入你要搜索的代码。
- 按 Enter 键进行搜索,或从列表中选择。
代码搜索仅显示文件中的第一个搜索结果。若要在整个 GitLab 中搜索代码,请让管理员启用高级搜索。
从代码搜索中查看 Git blame
- 在极狐GitLab 14.7 中引入。
找到搜索结果后,你可以查看最后修改该行代码的作者。
- 在代码搜索结果中,将鼠标悬停在行号上。
- 在左侧,选择 查看 blame。
按语言过滤代码搜索结果
- 在极狐GitLab 15.10 中引入。
要按一种或多种语言过滤代码搜索结果:
- 在代码搜索页面的左侧边栏中,选择一种或多种语言。
- 在左侧边栏中,选择 应用。
搜索提交 SHA
要搜索提交 SHA:
- 在左侧边栏中,选择 搜索或转到 并找到你的项目。
- 再次选择 搜索或转到 并输入你要搜索的提交 SHA。
- 按 Enter 键进行搜索,或从列表中选择。
如果返回单一结果,GitLab 会自动跳转到该提交的详细信息,并提供返回搜索结果页面的选项。