查询字段、运算符、值和变量

你通过创建工作项查询来查找和创建工作项列表。 通过定义一个或多个子句,从团队项目或团队项目集合中的所有工作项中进行筛选,以返回你感兴趣的工作项集。 对于每个子句,可指定字段、运算符以及值或变量。 例如,通过指定**“团队项目”**字段、等号 (=) 运算符,并指定特定团队项目的名称作为值,可以搜索该项目中的所有工作项。 可以指定表示当前团队项目的变量(如 @Project)而不是指定值。

示例查询子句

And/Or

字段

运算符

And

团队项目

=

@Project

有关查询的更多常规信息,请参见查询工作项。 有关如何使用键盘快捷方式在查询编辑器或查询视图中进行导航的信息,请参见在 Team Web Access 和团队资源管理器中有效的键盘快捷键

主题内容

  • And/Or

  • 查询字段和值

  • 查询运算符

  • 查询变量

  • 全文和部分单词搜索

  • 查询编制索引的字段

有关如何定义查询子句的检查表:

  1. 在第一个空行中,在**“字段”**列标题下方,选择下箭头以显示可用字段的列表,然后选择列表中的项。

    有关更多信息,请参见查询字段和值。

  2. 在同一行中,在**“运算符”**列标题下方,选择下箭头以显示可用运算符的列表,然后选择列表中的项。

    有关更多信息,请参见运算符。

  3. 在同一行中,在**“值”**列标题下,键入值或选择下箭头,并选择列表中的项。

  4. 有关如何使用变量指定当前团队项目、用户或日期的更多信息,请参见变量。

  5. 若要添加子句,请选择**“单击此处添加新子句”“添加新子句”**。

    可根据需要向查询末尾添加子句、在现有子句后插入子句 (插入查询子句)、删除子句 (删除查询子句)、分组 (将查询子句分组) 以及取消分组 (将查询子句取消分组)。

And/Or

你指定**“And”“Or”以创建查询子句的逻辑表达式。 指定“And”以查找同时满足当前子句和前一个子句中的条件的工作项。 指定“Or”**以查找满足当前子句或前一个子句中的条件的工作项。

你可以为每个工作项字段添加一个新子句以细化搜索条件,从而使其只返回所需的工作项集。 如果未获得预期的查询结果,可以对查询子句进行添加、移除、分组或取消分组,从而细化查询结果。

可以对查询子句进行分组,使其作为独立于查询的其余部分的一个单元来工作,这类似于在数学等式或逻辑语句中的某个表达式两侧加上括号。 在对子句进行分组时,组中第一个子句的**“与”“或”**应用于整个组。

如以下示例所示,分组子句被转换成对应的逻辑表达式。 第一个表达式返回优先级为 1 的工作项和任意优先级的所有活动 Bug。 第二个表达式返回优先级为 1 的所有活动工作项以及优先级为 1 的所有 Bug(无论活动与否)。

分组子句

逻辑表达式。

带有分组的 AND 子句的 OR 运算符

Priority=1 OR (Work Item Type=Bug AND State=Active)

带有分组的 Or 子句的 AND 运算符

Priority=1 AND (Work Item Type=Bug OR State=Active)

有关详细信息,请参阅指定查询筛选条件 [重定向]

查询字段和值

为字段指定的值必须符合该字段的数据类型。 下表列出支持的数据类型:

数据类型

存储的数据

DateTime

协调世界时(UTC)时刻。 可指定变量(如 @Today 或 @Today-1),也可指定值(如 1/1/2012)。

Double

一个实数,如 0.2 或 3.5。

GUID

一个表示唯一 ID 的字符串。

History

用于跟踪历史信息的自定义格式的字段。 此数据类型仅用于支持“历史记录”字段。 当全文搜索可用时,该字段在进行全文搜索时可自动创建索引。 请参见本主题后面介绍的全文和部分单词搜索。

HTML

支持格式化说明的文本字符串,如“说明”“重现步骤”字段。 当全文搜索可用时,这些字段在进行全文搜索时可自动创建索引。 请参见本主题后面介绍的全文和部分单词搜索。

备注

当你升级 Team Foundation Server 时,“说明”字段的字段类型从 PlainText 变为 HTML。通过使用 witadmin changefield 命令,你可以根据需要还原此字段的数据类型。请参阅管理工作项字段 [witadmin]

Integer

一个 32 位有符号整数,如 0、1、2、34。

PlainText

支持长说明的文本字符串,例如“应用程序启动信息”字段。 当全文搜索可用时,这些字段在进行全文搜索时可自动创建索引。 请参见本主题后面介绍的全文和部分单词搜索。

String

最多包含 255 个 Unicode 字符的短文本字符串。

TreePath

一个分支树结构,如“区域路径”或“迭代路径”。 你必须选择由有效值列表中的项。 可查找相等或处于树结构下的工作项。 有关详细信息,请参阅添加和修改区域和迭代路径

返回页首

查询运算符

可使用下表中的查询运算符指定子句中的每个值必须如何与工作项中的对应值相关。 有关分配给工作项字段的数据类型的信息,请参见Visual Studio ALM 的工作项字段参考

查询运算符

如果工作项中的值与列出的条件匹配,则返回工作项

适用的数据类型

=

与子句中的值匹配。

Number,包括 Double、GUID、Integer 和 String 以及 DateTime、TreePath

<>

与子句中的值不匹配。

Number、String、DateTime 和 TreePath

>

大于子句中的值。

Number、String 和 DateTime

<

小于子句中的值。

Number、String 和 DateTime

>=

大于或等于子句中的值。

Number、String 和 DateTime

<=

小于或等于子句中的值。

Number、String 和 DateTime

=[字段]

与指定字段中包含的值匹配。

与指定字段具有相同数据类型的字段的名称

<>[字段]

与指定字段中包含的值不匹配。

与指定字段具有相同数据类型的字段的名称

>[字段]

大于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

<[字段]

小于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

>=[字段]

大于或等于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

<=[字段]

小于或等于指定字段中包含的值。

与指定字段具有相同数据类型的字段的名称

包含

在你为筛选而选择的字段中包含文本字符串的完全或部分匹配。

String

不包含

在你为筛选而选定的字段中不包含文本字符串的完全或部分匹配。

String

包含字词

在你为筛选而选定的字段内包含准确的文本字符串或字。 也可输入包含通配符“*”的部分单词或短语。 有关限制,请参见全文搜索中的服务器和排序规则要求。

在进行全文搜索时编制索引的长文本字段,其对应于所有 PlainText 和 HTML 字段和“标题”

不包含字词

在你为筛选而选定的字段中不包含准确的文本字符串或字。

在进行全文搜索时编制索引的文本字段。

在...中

与分隔的集合中的任何值匹配。 例如,如果为 ID 字段指定值 100、101 和 102,则可查找 ID 为这些值的工作项。

重要

用列表分隔符分隔值,列表分隔符与为你的客户端计算机定义的区域设置相对应。例如,可以使用逗号 (,)。

Number、String、DateTime、TreePath

在组中

与作为子句中组的成员的值匹配。 对应于一个类别或一个 TFS 组的名称的组。 例如,你可以创建一个查询,用来查找分配给 Contributors 组成员或分配给团队的所有工作项。 在创建团队时创建团队组。 团队组的名称遵循模式 [团队项目名称]\ 团队名称。

不能将安全组或电子邮件通讯组指定为一个值。

有关工作示例,请参阅示例查询

与 Team Foundation Server 中的用户组或类别组的名称相匹配的 String。

备注

只能将“在组中”运算符用于使用 String 数据类型的字段或“工作项类型”字段。

有关类别组的信息,请参阅使用类别对工作项类型进行分组

不在组中

与作为子句中组的成员的值不匹配。

与 Team Foundation Server 中的用户组名称或为团队项目定义的类别组相匹配的 String。

备注

只能将“不在组中”运算符用于使用 String 数据类型的字段或“工作项类型”字段。

有关类别组的信息,请参阅使用类别对工作项类型进行分组

曾是

在以前任意时间与子句中的值匹配。

String, DateTime

其下

与子句中的值匹配或包含在子句中节点之下。

TreePath

不在其下

与子句中的值不匹配并且未包含在子句中节点之下。

TreePath

返回页首

查询变量

可使用下表中的变量查找与当前用户、当前项目或当前日期相关的工作项。

查询变量

用法

@Me

使用此变量可在包含用户别名的字段中自动搜索当前用户的别名。 例如,如果将“字段”列设置为“激活者”,将“运算符”列设置为“=”,将“值”列设置为 @Me,则可查找你打开的工作项。

@Project

使用此变量可搜索当前团队项目中的工作项。 例如,如果将“字段”列设置为“团队项目”,将“运算符”列设置为“=”,将“值”列设置为 @Project,则可查找当前团队项目中的所有工作项。

@Today

使用此变量可搜索与当前日期或更早日期相关的工作项。 还可以通过减去天数来修改 @Today 变量。 例如,如果将“字段”列设置为“激活日期”、将“运算符”列设置为“>=”并将“值”列设置为 @Today - 7,则可查找上周激活的所有项。

[Any]

使用此变量可搜索为特定字段定义的任何值的相关工作项。

返回页首

全文和部分单词搜索

指定**“包含”“不包含”以搜索词或短语的精确或部分匹配项。 指定“包含字词”“不包含字词”以搜索精确短语或使用通配符“*”**。 这些运算符使用全文搜索索引。 只能在部分单词或短语的末尾使用通配符。

有关示例,请参见工作项查询示例使用“历史记录”字段查询工作项

备注

并非所有部署都支持全文搜索。例如,SQL Express 和 SQL Azure,二者都支持 Visual Studio Online,但不支持全文搜索。在这些情况下,只会看到“包含”“不包含”运算符。

**“包含字”“不包含字”基于为长文本字段创建的全文搜索索引来筛选项。 针对全文搜索,Team Foundation 会自动将数据类型为 PlainText 和 HTML 的所有长文本字段和“标题”**字段编制索引。 只有在支持 Team Foundation Server 的 SQL Server 支持全文搜索时,索引和运算符才可用。

全文搜索需要使用 SQL 排序规则(对应于具有注册到 SQL Server 的分词系统的语言)。 如果用于 Team Foundation Server 实例的团队项目集合数据库的排序规则设置与所支持的语言不对应,你的搜索结果可能将与预期不相符。 在这些情况下,你可能尝试使用**“包含”“不包含”**运算符。

有关详情,请参见全文搜索查询和排序规则设置

查询编制索引的字段

除了全文搜索索引外,将创建查询索引。 它基于那些已启用索引的字段。 当运行包含索引字段的查询时,此查询索引可缩短响应时间。

默认情况下,将为以下字段编制索引:“指派给”“创建日期”“更改者”“状态”“原因”“区域 ID”“迭代 ID”“工作项类型”。 如果存在你的团队在查询中常用的其他字段,你可以将它们添加到查询索引。

可使用 witadmin indexfield 命令启用或禁用字段的索引编制。 请参阅管理工作项字段 [witadmin]

请参见

概念

查询工作项