TeamCity On-Premises 2024.03 Help

搜索语法

在您安装并开始运行 TeamCity 之后,它会收集构建、测试等信息并进行索引。 您可以通过构建号码、标签、构建配置名称以及其他不同参数来查找构建,这些参数可以指定一个或多个关键字。 您也可以通过构建日志中的文本以及构建配置的 外部 ID 来搜索构建。

默认情况下,TeamCity 在本地存储搜索索引,但您可以切换到 Elasticsearch 模式,以便在您的 Elastic 主机上存储索引。 两种模式都支持本文中描述的 Lucene 语法。

搜索查询

在 TeamCity 中,您可以使用 Lucene 查询语法 搜索构建。 请注意,这与默认的 Lucene 语法存在重大区别:默认情况下,TeamCity 使用的是“前缀搜索”,而不是像 Lucene 那样的精确匹配。 例如,如果您搜索 c:main ,TeamCity 将找到所有以 主要 字符串开头的构建配置的构建。

正如 Lucene 一样,TeamCity 默认在查询中使用 运算符:如果两个术语之间没有布尔运算符,那么将使用 运算符链接两个词项,只要在其中任一词项存在匹配条目,就能找到相应结果。

为了缩小搜索范围并获得更精确的结果,可以使用可用的搜索字段 —— 每个构建的索引参数。 要获取所有可用搜索字段(关键词)的完整列表,请参阅 相关部分

执行模糊搜索

您还有可能使用波浪符( ~ )在单词术语的末尾执行模糊搜索,以搜索拼写相似的项目。

布尔运算符和通配符支持

您可以使用布尔运算符将多个术语组合,以创建更复杂的搜索查询。 TeamCity Search 支持 - 运算符。 运算符只在同一字段的范围内有效(例如, 标签:EAP 和 标签:Production)。

在使用布尔运算符时,请将它们全部输入为大写。

  • 运算符可帮助检索搜索字段中指定的任一术语的搜索术语。 这个操作符默认使用。

  • (等同于查询词前的 -)。 从搜索结果中排除单词或短语。

TeamCity 也支持在查询中使用 *? 通配符。 不建议在搜索词的开头使用星号( * ),因为这可能需要 TeamCity 花费大量时间来搜索其数据库。 例如, *onfiguration 搜索词是不正确的。

可用搜索字段、快捷方式和关键词的完整列表

搜索字段

在使用搜索关键词时,请使用以下查询语法:

<search field name>:<value to search>

搜索字段

快捷键

描述

示例

代理

查找在指定代理上运行的所有构建。

agent:unit-77 ,或 agent:agent14*

构建

查找包含指定字符串更改的所有构建。

build:254构建:失败

buildLog

在构建日志中查找包含特定文本的所有构建。 默认情况下,它是 禁用 的。

buildLog: "NUnit 报告"

更改

查找包含指定字符串更改的所有构建。

更改:(修复测试)

位提交者

查找包含指定开发人员提交更改的所有构建。

committers:ivan_ivanov

配置

c

找到指定构建配置中的所有构建。

配置:IPR

c:(每日构建)

标签

l

查找包含指定VCS标签更改的所有构建。

labels:EAP

l:发布

固定评论

找到所有被固定并且在固定评论中包含指定单词(字符串)的构建。

发布评论

项目

p

找到指定项目中的所有构建。

项目:Diana

p:加尔各答

修订

查找包含指定修订版本变更的所有构建(例如,您可以搜索包含来自 Perforce 的特定变更列表,或者 Subversion 中的修订号的构建)。

修订版:4536

邮戳

找到所有在指定时间开始的构建(通过时间戳进行搜索)。

stamp:200811271753

状态

在构建状态文本中查找所有包含指定文本的构建。

状态:"编译失败"

标记

t

找到所有带有指定标签的构建。

标签:buildserver

t:发布

测试

寻找包含指定测试的所有构建。

测试:

触发器

查找所有由指定用户触发的构建。

触发者:ivan.ivanov

vcs

找到具有指定 VCS 的构建。

vcs:perforce

构建问题

查找具有指定构建问题的版本

buildProblem:编译失败

调试

启用显示每个搜索结果的命中分数(相关性)。 有助于诊断与 Builds Search 相关的问题。

debug:true

hitscore

隐藏得分(相关性)低于指定值的结果。 在搜索查询中添加了 debug:true 子句后,可以查看结果的命中分数。

hitsocre:322

快捷键

除了上述提到的搜索字段外,您可以在查询中使用以下快捷方式:

快捷键

描述

示例

#

搜索指定的构建编号。

#<number> ,例如, #1234

@

查找在指定代理上运行的所有构建。

@<agent's name> ,例如, @buildAgent1

使用双冒号

您可以使用双冒号符号( :: )按名称搜索项目和/或构建配置:

  • pro::best — 搜索以 最佳 开头的配置构建,以及以 pro 开头的项目中。

  • mega:: — 在所有项目中查找名称以 mega 开始的构建。

  • ::super — 搜索以 "super" 开始的构建配置的构建。

"魔术"关键词

TeamCity 还提供“魔术”关键词(参见下表获取完整列表)。 这些魔术关键字由 $ 符号和一个词本身组成。 该词可以缩短至一个(首个)音节,也就是说, $labeled$l$lab 关键字在查询中将会相等。 例如,要在 "Mega" 项目中搜索 "Nightly build" 配置的置顶构建,您可以使用以下任何一种查询:

  • 配置:夜间项目:Mega $pinned

  • c:nigh p:mega $pin

  • M::night $pin

魔法词

描述

$tagged

搜索带有标签的构建。 例如, Calcutta::Master $t 查询将返回所有被标记有任何以 开始的构建配置标签的构建列表,这些构建来自于名称以 加尔各答 开始的项目。

$pinned

搜索已固定的构建。

$labeled

在 VCS 中搜索已被标签的构建。 例如,要找到 Main 项目的标记构建,您可以使用以下查询: p:Main $labeled ,或者 项目:Mai $l ,或者 m:: $lab ,等等。

$commented

搜索已经被评论过的构建。

$personal

搜索个人构建。 例如,将 -$p 表达式用于您的查询将会从搜索结果中排除所有个人构建。

根据构建日志搜索

默认情况下,TeamCity 不会在构建日志中搜索特定文本的构建。

为了启用通过构建日志的搜索,请执行以下操作:

  1. 由于这种逻辑会增加服务器内存的使用,您需要在至少 5Gb(如果有大量构建日志/许多构建,则需要更多)的 JVM 选项上增加 内存大小

  2. 设置 tc.search.indexBuildLog=true TeamCity 内部属性

  3. 重置搜索索引。

重新索引后,TeamCity 将能够根据构建日志中指定的文本进行搜索,并列出相关的构建。

重置搜索索引

搜索使用的是缓存在磁盘上的“索引”。 仅先前添加到索引中的数据可以被搜索,并出现在搜索结果中。 通常,数据更新(如新的构建)只会导致对索引的增量更新。 这意味着,当某些索引设置发生更改并且磁盘上的缓存索引与之不同步时,需要重置索引以重新对所有构建进行索引。

要重置缓存的搜索索引,请点击 重置 ,在 管理员 | 服务器Administration | Diagnostics缓存 标签页中查找 "search" 项,或在服务器未运行的情况下,手动从 <TeamCity 数据目录>\系统\缓存\搜索 中删除文件。 之后,将开始重建索引,这是一项在服务器上非常消耗资源的操作,可能需要数小时(具体取决于构建的数量和“大小”,以及服务器机器和数据库性能)。 您可以在搜索页面的用户界面或服务器日志中监控进度。

最后修改日期: 16日 7月 2024年