Advanced Syntax Search
原文:https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html
Advanced Syntax Search
版本历史
- 在GitLab Enterprise Starter 9.2 中引入
GitLab.com 可用性:自 2020-07-10 起,在 GitLab.com 上启用了 Bronze 及更高版本的 Advanced Global Search(由 Elasticsearch 支持).
使用高级查询获得更具针对性的搜索结果.
这是用户文档. 要安装和配置 Elasticsearch,请访问管理员文档 .
Overview
“高级语法搜索”是” 高级全局搜索”的子集,如果您想要更具体的搜索结果,可以使用它.
Advanced Global Search 仅支持搜索默认分支 .
Use cases
例如,假设您开发的产品依赖于另一个组中托管的另一种产品的代码.
由于在您的 GitLab 实例下托管了数百个不同的项目,因此您需要搜索结果尽可能地高效. 您对要查找的内容有感觉(例如,函数名),但是同时您也不太确定.
在这种情况下,在查询中使用高级搜索语法将产生更好的结果.
Using the Advanced Syntax Search
高级语法搜索支持带有前缀,布尔运算符等的模糊或精确搜索查询.
可以在Elasticsearch 文档中找到完整的详细信息,但是这里有一个快速指南:
- 搜索以任何顺序搜索查询中的所有单词,例如:搜索
display bug
问题将以任何顺序返回匹配这两个单词的所有问题. - 要查找确切的词组(仍然适用词干),请使用双引号:
"display bug"
- 要查找未提及显示的错误,请使用
-
:bug -display
- 要查找显示或声音中的错误,请使用
|
:bug display | sound
bug display | sound
- 要组术语一起,使用括号:
bug | (display +sound)
bug | (display +sound)
- 要匹配部分单词,请使用
*
:bug find_by_*
- 要查找包含这些符号之一的术语,请使用
\
:argument \-last
Syntax search filters
高级语法搜索还支持使用过滤器. 可用的过滤器是:
- filename:按文件名过滤. 您可以使用 glob(
*
)运算符进行模糊匹配. - path:按路径过滤. 您可以使用 glob(
*
)运算符进行模糊匹配. - 扩展名:按扩展名过滤文件名. 请写扩展名,不要带引号. 仅完全匹配.
要使用它们,只需将它们添加到您的查询格式<filter_name>:<value>
没有冒号之间的空格( :
)和值.
Examples:
- 查找包含任何名为
hello_world.rb
内容的文件:* filename:hello_world.rb
- 查找一个名为
hello_world
的文件,其中包含文本whatever
:whatever filename:hello_world
- 在扩展名为
.rb
文件中查找文本” def create”:def create extension:rb
- 在名为
encryption
的文件夹中的文件内查找文本sha
:sha path:encryption
- 查找任何以
hello
开头的文件,其中包含world
并带有.js
扩展名:world filename:hello* extension:js