搜索语法
在您安装并开始运行 TeamCity 之后,它会收集构建、测试等信息并进行索引。 您可以通过构建号码、标签、构建配置名称以及其他不同参数来查找构建,这些参数可以指定一个或多个关键字。 您也可以通过构建日志中的文本以及构建配置的 外部 ID 来搜索构建。
默认情况下,TeamCity 在本地存储搜索索引,但您可以切换到 Elasticsearch 模式,以便在您的 Elastic 主机上存储索引。 两种模式都支持本文中描述的 Lucene 语法。
搜索查询
在 TeamCity 中,您可以使用 Lucene 查询语法 搜索构建。 请注意,这与默认的 Lucene 语法存在重大区别:默认情况下,TeamCity 使用的是“前缀搜索”,而不是像 Lucene 那样的精确匹配。 例如,如果您搜索 c:main
,TeamCity 将找到所有以 主要
字符串开头的构建配置的构建。
正如 Lucene 一样,TeamCity 默认在查询中使用 或
运算符:如果两个术语之间没有布尔运算符,那么将使用 或
。 或
运算符链接两个词项,只要在其中任一词项存在匹配条目,就能找到相应结果。
为了缩小搜索范围并获得更精确的结果,可以使用可用的搜索字段 —— 每个构建的索引参数。 要获取所有可用搜索字段(关键词)的完整列表,请参阅 相关部分。
执行模糊搜索
您还有可能使用波浪符( ~
)在单词术语的末尾执行模糊搜索,以搜索拼写相似的项目。
布尔运算符和通配符支持
您可以使用布尔运算符将多个术语组合,以创建更复杂的搜索查询。 TeamCity Search 支持 或
、 不
和 -
运算符。 和
运算符只在同一字段的范围内有效(例如, 标签:EAP 和 标签:Production
)。
在使用布尔运算符时,请将它们全部输入为大写。
或
运算符可帮助检索搜索字段中指定的任一术语的搜索术语。 这个操作符默认使用。不
(等同于查询词前的-
)。 从搜索结果中排除单词或短语。
TeamCity 也支持在查询中使用 *
和 ?
通配符。 不建议在搜索词的开头使用星号( *
),因为这可能需要 TeamCity 花费大量时间来搜索其数据库。 例如, *onfiguration
搜索词是不正确的。
可用搜索字段、快捷方式和关键词的完整列表
搜索字段
在使用搜索关键词时,请使用以下查询语法:
搜索字段 | 快捷键 | 描述 | 示例 |
---|---|---|---|
代理 | 查找在指定代理上运行的所有构建。 |
| |
构建 | 查找包含指定字符串更改的所有构建。 |
| |
buildLog | 在构建日志中查找包含特定文本的所有构建。 默认情况下,它是 禁用 的。 |
| |
更改 | 查找包含指定字符串更改的所有构建。 |
| |
位提交者 | 查找包含指定开发人员提交更改的所有构建。 |
| |
配置 | c | 找到指定构建配置中的所有构建。 |
|
标签 | l | 查找包含指定VCS标签更改的所有构建。 |
|
固定评论 | 找到所有被固定并且在固定评论中包含指定单词(字符串)的构建。 |
| |
项目 | p | 找到指定项目中的所有构建。 |
|
修订 | 查找包含指定修订版本变更的所有构建(例如,您可以搜索包含来自 Perforce 的特定变更列表,或者 Subversion 中的修订号的构建)。 |
| |
邮戳 | 找到所有在指定时间开始的构建(通过时间戳进行搜索)。 |
| |
状态 | 在构建状态文本中查找所有包含指定文本的构建。 |
| |
标记 | t | 找到所有带有指定标签的构建。 |
|
测试 | 寻找包含指定测试的所有构建。 |
| |
触发器 | 查找所有由指定用户触发的构建。 |
| |
vcs | 找到具有指定 VCS 的构建。 |
| |
构建问题 | 查找具有指定构建问题的版本 |
| |
调试 | 启用显示每个搜索结果的命中分数(相关性)。 有助于诊断与 Builds Search 相关的问题。 |
| |
hitscore | 隐藏得分(相关性)低于指定值的结果。 在搜索查询中添加了 |
|
快捷键
除了上述提到的搜索字段外,您可以在查询中使用以下快捷方式:
快捷键 | 描述 | 示例 |
---|---|---|
| 搜索指定的构建编号。 |
|
| 查找在指定代理上运行的所有构建。 |
|
使用双冒号
您可以使用双冒号符号( ::
)按名称搜索项目和/或构建配置:
pro::best
— 搜索以最佳
开头的配置构建,以及以pro
开头的项目中。mega::
— 在所有项目中查找名称以mega
开始的构建。::super
— 搜索以 "super" 开始的构建配置的构建。
"魔术"关键词
TeamCity 还提供“魔术”关键词(参见下表获取完整列表)。 这些魔术关键字由 $
符号和一个词本身组成。 该词可以缩短至一个(首个)音节,也就是说, $labeled
、 $l
和 $lab
关键字在查询中将会相等。 例如,要在 "Mega" 项目中搜索 "Nightly build" 配置的置顶构建,您可以使用以下任何一种查询:
配置:夜间项目:Mega $pinned
c:nigh p:mega $pin
M::night $pin
魔法词 | 描述 |
---|---|
| 搜索带有标签的构建。 例如, |
| 搜索已固定的构建。 |
| 在 VCS 中搜索已被标签的构建。 例如,要找到 Main 项目的标记构建,您可以使用以下查询: |
| 搜索已经被评论过的构建。 |
| 搜索个人构建。 例如,将 |
根据构建日志搜索
默认情况下,TeamCity 不会在构建日志中搜索特定文本的构建。
为了启用通过构建日志的搜索,请执行以下操作:
由于这种逻辑会增加服务器内存的使用,您需要在至少 5Gb(如果有大量构建日志/许多构建,则需要更多)的 JVM 选项上增加 内存大小。
设置
tc.search.indexBuildLog=true
TeamCity 内部属性。重置搜索索引。
重新索引后,TeamCity 将能够根据构建日志中指定的文本进行搜索,并列出相关的构建。
重置搜索索引
搜索使用的是缓存在磁盘上的“索引”。 仅先前添加到索引中的数据可以被搜索,并出现在搜索结果中。 通常,数据更新(如新的构建)只会导致对索引的增量更新。 这意味着,当某些索引设置发生更改并且磁盘上的缓存索引与之不同步时,需要重置索引以重新对所有构建进行索引。
要重置缓存的搜索索引,请点击 重置
,在 管理员 | 服务器Administration | Diagnostics,缓存 标签页中查找 "search" 项,或在服务器未运行的情况下,手动从 <TeamCity 数据目录>\系统\缓存\搜索 中删除文件。 之后,将开始重建索引,这是一项在服务器上非常消耗资源的操作,可能需要数小时(具体取决于构建的数量和“大小”,以及服务器机器和数据库性能)。 您可以在搜索页面的用户界面或服务器日志中监控进度。