GitLab 中的搜索
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
在日益增长的代码库或扩展的组织中找到您需要的内容。 通过在项目中查找特定的代码、问题、合并请求和其他内容来节省时间。 根据您的需求选择三种搜索类型:基础搜索、高级搜索 和 精确代码搜索。
对于代码搜索,GitLab 按以下顺序使用这些类型:
- 精确代码搜索:您可以使用精确匹配和正则表达式模式。
- 高级搜索:当精确代码搜索不可用时。
- 基础搜索:当精确代码搜索和高级搜索都不可用, 或者当您搜索非默认分支时。 此类型不支持组或全局搜索。
可用范围
范围描述了您正在搜索的数据类型。 基础搜索可用的范围如下:
| Scope | Global 1 | Group | Project |
|---|---|---|---|
| Code | No | No | Yes |
| Comments | No | No | Yes |
| Commits | No | No | Yes |
| Epics | No | Yes | No |
| Issues | Yes | Yes | Yes |
| Merge requests | Yes | Yes | Yes |
| Milestones | Yes | Yes | Yes |
| Projects | Yes | Yes | No |
| Users | Yes | Yes | Yes |
| Wikis | No | No | Yes |
Footnotes:
- 管理员可以 禁用全局搜索范围。
指定搜索类型
要指定搜索类型,按如下方式设置 search_type URL 参数:
search_type 替代了已弃用的 basic_search 参数。
更多信息,请参见 issue 477333。
限制搜索访问
- Offering: GitLab 自托管版
先决条件:
- 您必须拥有实例的管理员权限。
默认情况下,对 /search 的请求和全局搜索对未认证用户可用。
要将 /search 限制为仅认证用户,请执行以下操作之一:
-
为项目或组 限制可见性级别
-
在 管理员 区域限制访问:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 搜索。
- 展开 高级搜索。
- 清除 允许未认证用户使用搜索 复选框。
- 选择 保存更改。
要将全局搜索限制为仅认证用户:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 搜索。
- 展开 可见性和访问控制
- 选择 仅允许认证用户使用全局搜索 复选框。
- 选择 保存更改。
禁用全局搜索范围
- Tier: 免费版、高级版、旗舰版
- Offering: GitLab 自托管版
先决条件:
- 您必须拥有实例的管理员权限。
为了提高实例全局搜索的性能, 您可以禁用一个或多个搜索范围。 在 GitLab 自托管版实例上,所有全局搜索范围默认都启用。
要禁用一个或多个全局搜索范围:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 搜索。
- 展开 可见性和访问控制。
- 清除您要禁用的范围的复选框。
- 选择 保存更改。
全局搜索验证
全局搜索会忽略并记录为滥用任何包含以下内容的搜索:
- 少于两个字符
- 超过 100 个字符的术语(URL 搜索术语不得超过 200 个字符)
- 仅包含停用词(例如
the、and或if) - 未知的
scope - 不是完全数字的
group_id或project_id - 包含 Git refname 不允许的特殊字符的
repository_ref或project_ref
全局搜索仅标记包含超过以下内容的搜索为错误:
- 4096 个字符
- 64 个术语
问题搜索不支持部分匹配。
例如,当您搜索 play 时,查询不会包含 display 的问题。
但是,查询会匹配该字符串的所有可能变体(例如 plays)。
自动完成建议
此功能的可用性由功能标志控制。 更多信息,请参见历史记录。
当您在搜索框中输入时,会显示以下自动完成建议:
- 项目 和组
- 来自授权项目和组的用户
- 帮助页面
- 项目功能(例如里程碑)
- 设置(例如用户设置)
- 最近查看的合并请求
- 最近查看的问题和史诗
- 项目中问题的 GitLab 风味 Markdown 引用
在整个 GitLab 中搜索
要在整个 GitLab 中搜索:
- 在左侧边栏,选择 搜索或跳转。
- 输入您的搜索查询。您必须输入至少两个字符。
- 按 Enter 进行搜索,或从列表中选择。
将显示结果。要过滤结果,请在左侧边栏选择一个筛选器。
在项目中搜索
要在项目中搜索:
- 在左侧边栏,选择 搜索或跳转 并找到您的项目。
- 再次选择 搜索或跳转 并输入您要搜索的字符串。
- 按 Enter 进行搜索,或从列表中选择。
将显示结果。要过滤结果,请在左侧边栏选择一个筛选器。
通过完整路径搜索项目
您可以通过在搜索框中输入项目的完整路径(包括其所属的命名空间)来搜索项目。 当您输入项目路径时,会显示 自动完成建议。
例如:
gitlab-org/gitlab搜索gitlab-org命名空间中的gitlab项目。gitlab-org/显示属于gitlab-org命名空间的项目自动完成建议。
在搜索结果中包含已归档项目
默认情况下,已归档的项目会从搜索结果中排除。 要在搜索结果中包含已归档的项目:
- 在搜索页面的左侧边栏,选择 包含已归档 复选框。
- 在左侧边栏,选择 应用。
搜索代码
要在项目中搜索代码:
- 在左侧边栏,选择 搜索或跳转 并找到您的项目。
- 再次选择 搜索或跳转 并输入您要搜索的代码。
- 按 Enter 进行搜索,或从列表中选择。
代码搜索只显示文件中的第一个结果。 要在整个 GitLab 中搜索代码,请让您的管理员启用 高级搜索。
从代码搜索查看 Git blame
找到搜索结果后,您可以查看谁对结果所在行进行了最后一次更改。
- 从代码搜索结果中,将鼠标悬停在行号上。
- 在左侧,选择 查看 blame。
按语言过滤代码搜索结果
要按一种或多种语言过滤代码搜索结果:
- 在代码搜索页面的左侧边栏,选择一种或多种语言。
- 在左侧边栏,选择 应用。
搜索提交 SHA
要搜索提交 SHA:
- 在左侧边栏,选择 搜索或跳转 并找到您的项目。
- 再次选择 搜索或跳转 并输入您要搜索的提交 SHA。
- 按 Enter 进行搜索,或从列表中选择。
如果返回单个结果,GitLab 会重定向到提交结果, 并为您提供返回搜索结果页面的选项。