极狐GitLab 高级搜索

  • 在 13.9 中移动到专业版。

您可以使用高级搜索功能,快速高效地在整个GitLab实例中进行搜索。高级搜索基于Elasticsearch,这是一个专门设计的全文搜索引擎,您可以水平扩展它,在大多数情况下可以在一秒内获得搜索结果。

您可以在所有项目中同时找到您要更新的代码,从而节省维护时间并推动内部开源(innersourcing)。

您可以在以下内容中使用高级搜索:

  • 项目
  • 议题
  • 合并请求
  • 里程碑
  • 用户
  • 史诗(仅在群组中搜索时)
  • 代码
  • 评论
  • 提交
  • Wiki(除了群组 wikis

高级搜索在各种情况下都很有用:

启用高级搜索

语法

  • 在极狐GitLab 15.10 版本中引入了用户搜索的优化详细说明。

高级搜索使用 simple_query_string, 它支持精确和模糊查询。

当您搜索用户时,默认会使用 fuzzy 查询。 您可以通过 simple_query_string 来优化用户搜索。

语法 描述 示例
" 精确搜索 "gem sidekiq"
~ 模糊搜索 J~ Doe
| display | banner
+ display +banner
- 排除 display -banner
* 部分匹配 bug error 50*
\ 转义字符 \*md
# 问题ID #23456
! 合并请求ID !23456

代码搜索

语法 描述 示例
filename: 文件名 filename:*spec.rb
path: 仓库路径(支持完全或部分匹配) path:spec/workers/
extension: 文件扩展名(不带.,仅支持精确匹配) extension:js
blob: Git对象ID(仅支持精确匹配) blob:998707*

示例

查询 描述
rails -filename:gemfile.lock 返回所有文件中包含rails,但不包括gemfile.lock文件。
RSpec.describe Resolvers -*builder 返回所有包含RSpec.describe Resolvers但不以builder开头的内容。
bug | (display +banner) 返回包含bug的内容,或者同时包含displaybanner的内容。
helper -extension:yml -extension:js 返回包含helper的内容,排除所有.yml.js扩展名的文件。
helper path:lib/git 返回路径为lib/git*(例如spec/lib/gitlab)中的helper内容。

已知问题

  • 您只能搜索小于1MB的文件。对于私有化部署的GitLab实例,管理员可以配置 最大文件大小索引 设置
  • 高级搜索仅可在项目的默认分支上使用。
  • 搜索查询中不得包含以下字符:

    . , : ; / ` ' = ? $ & ^ | < > ( ) { } [ ] @
    
  • 搜索结果仅显示文件中的第一个匹配项。