# 高级语法搜索[](#高级语法搜索 "Permalink") 版本历史 * 在[GitLab Enterprise Starter](https://about.gitlab.com/pricing/) 9.2 中引入 **GitLab.com 可用性:**自 2020-07-10 起,在 GitLab.com 上启用了 Bronze 及更高版本的 Advanced Global Search(由 Elasticsearch 支持). 使用高级查询获得更具针对性的搜索结果. 这是用户文档. 要安装和配置 Elasticsearch,请访问[管理员文档](../../integration/elasticsearch.html) . ## Overview[](#overview "Permalink") "高级语法搜索"是" [高级全局搜索"](advanced_global_search.html)的子集,如果您想要更具体的搜索结果,可以使用它. Advanced Global Search 仅支持搜索[默认分支](../project/repository/branches/index.html#default-branch) . ## Use cases[](#use-cases "Permalink") 例如,假设您开发的产品依赖于另一个组中托管的另一种产品的代码. 由于在您的 GitLab 实例下托管了数百个不同的项目,因此您需要搜索结果尽可能地高效. 您对要查找的内容有感觉(例如,函数名),但是同时您也不太确定. 在这种情况下,在查询中使用高级搜索语法将产生更好的结果. ## Using the Advanced Syntax Search[](#using-the-advanced-syntax-search "Permalink") 高级语法搜索支持带有前缀,布尔运算符等的模糊或精确搜索查询. 可以在[Elasticsearch 文档中](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/query-dsl-simple-query-string-query.html#_simple_query_string_syntax)找到完整的详细信息,但是这里有一个快速指南: * 搜索以任何顺序搜索查询中的所有单词,例如:搜索`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[](#syntax-search-filters "Permalink") 高级语法搜索还支持使用过滤器. 可用的过滤器是: * filename:按文件名过滤. 您可以使用 glob( `*` )运算符进行模糊匹配. * path:按路径过滤. 您可以使用 glob( `*` )运算符进行模糊匹配. * 扩展名:按扩展名过滤文件名. 请写扩展名,不要带引号. 仅完全匹配. 要使用它们,只需将它们添加到您的查询格式`:`没有冒号之间的空格( `:` )和值. 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`