极狐GitLab 高级搜索
移动到专业版于 13.9 版本。
高级搜索使用 Elasticsearch 在整个极狐GitLab 实例中进行更快、更高级的搜索。
在以下位置搜索时使用高级搜索:
- 项目
- 议题
- 合并请求
- 里程碑
- 用户
- 史诗(仅在群组中搜索时)
- 代码
- 评论
- 提交
- Wiki(除了群组 wikis)
高级搜索在各种情况下都很有用:
- 更快的搜索: 高级搜索基于 Elasticsearch,这是一个专门构建的全文搜索引擎,可以水平缩放,因此在大多数情况下它可以在 1-2 秒内提供搜索结果。
- 代码维护: 在整个实例中查找需要一次更新的所有代码,可以节省维护代码所花费的时间。这对于拥有超过 10 个活动项目的组织特别有用。这也有助于在代码重构时识别未知影响。
- 提升内部溯源: 您的公司可能由许多不同的开发团队组成,每个团队都有自己负责托管各种项目的群组。您的一些应用程序可能相互连接,因此您的开发人员需要立即搜索整个极狐GitLab 实例并找到他们要搜索的代码。
配置高级搜索
对于私有化部署实例,管理员必须配置 Elasticsearch 集成。
在 SaaS 上,高级搜索已启用。
高级搜索语法
请参阅有关高级搜索语法的文档。
按议题或合并请求 ID 搜索
您可以通过带有特殊前缀的 ID 搜索特定议题或合并请求。
- 要按议题 ID 搜索,请使用前缀
#
,后跟议题 ID。例如,#23456
。 - 要按合并请求 ID 搜索,请使用前缀
!
,后跟合并请求 ID。例如!23456
。
全局搜索范围
引入于 14.3 版本。
要提高实例全局搜索的性能,您可以限制搜索范围。为此,您可以通过禁用 ops
功能标志来排除全局搜索范围。
全局搜索在 SaaS 和私有化部署实例中默认启用所有范围。极狐GitLab 管理员可以禁用以下 ops
功能标志,限制实例的全局搜索范围并优化其性能:
范围 | 功能标志 | 描述 |
---|---|---|
代码 | global_search_code_tab
| 启用后,全局搜索会将代码作为搜索的一部分。 |
提交 | global_search_commits_tab
| 启用后,全局搜索会将提交作为搜索的一部分。 |
议题 | global_search_issues_tab
| 启用后,全局搜索会将议题作为搜索的一部分。 |
合并请求 | global_search_merge_requests_tab
| 启用后,全局搜索将合并请求作为搜索的一部分。 |
用户 | global_search_users_tab
| 启用后,全局搜索会将用户作为搜索的一部分。 |
Wiki | global_search_wiki_tab
| 启用后,全局搜索会将 wiki 作为搜索的一部分。群组 wiki 不包括在内。 |
全局搜索验证
为防止滥用搜索,例如可能导致分布式拒绝服务 (DDoS) 的搜索,全局搜索会根据以下条件忽略、记录并且不返回任何被视为滥用的搜索结果:
- 搜索少于 2 个字符。
- 搜索任何超过 100 个字符的词。URL 搜索词最多包含 200 个字符。
- 使用停止词作为唯一搜索词进行搜索(例如,“the”、“and”、“if” 等)。
- 使用不完全数字的
group_id
或project_id
参数进行搜索。 - 使用包含 Git refname 不允许的特殊字符的
repository_ref
或project_ref
参数进行搜索。 - 使用未知的
scope
进行搜索。
不符合下述标准的搜索不会被记录为滥用,但会被标记为错误:
- 搜索超过 4096 个字符。
- 搜索超过 64 个字词。