极狐GitLab 高级搜索
- 在 13.9 中移动到专业版。
您可以使用高级搜索功能,快速高效地在整个GitLab实例中进行搜索。高级搜索基于Elasticsearch,这是一个专门设计的全文搜索引擎,您可以水平扩展它,在大多数情况下可以在一秒内获得搜索结果。
您可以在所有项目中同时找到您要更新的代码,从而节省维护时间并推动内部开源(innersourcing)。
您可以在以下内容中使用高级搜索:
- 项目
- 议题
- 合并请求
- 里程碑
- 用户
- 史诗(仅在群组中搜索时)
- 代码
- 评论
- 提交
- Wiki(除了群组 wikis)
高级搜索在各种情况下都很有用:
启用高级搜索
- 对于 JihuLab.com 高级搜索在付费订阅中已启用。
- 对于极狐GitLab 私有化部署,管理员需要启用高级搜索。
语法
- 在极狐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 的内容,或者同时包含display 和banner 的内容。 |
helper -extension:yml -extension:js |
返回包含helper 的内容,排除所有.yml 和.js 扩展名的文件。 |
helper path:lib/git |
返回路径为lib/git* (例如spec/lib/gitlab )中的helper 内容。 |
已知问题
- 您只能搜索小于1MB的文件。对于私有化部署的GitLab实例,管理员可以配置 最大文件大小索引 设置。
- 高级搜索仅可在项目的默认分支上使用。
-
搜索查询中不得包含以下字符:
. , : ; / ` ' = ? $ & ^ | < > ( ) { } [ ] @
- 搜索结果仅显示文件中的第一个匹配项。