Advanced Syntax Search

原文:https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html

Advanced Syntax Search

版本历史

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的文件,其中包含文本whateverwhatever filename:hello_world
  • 在扩展名为.rb文件中查找文本” def create”: def create extension:rb
  • 在名为encryption的文件夹中的文件内查找文本shasha path:encryption
  • 查找任何以hello开头的文件,其中包含world并带有.js扩展名: world filename:hello* extension:js