1

我的应用程序有关键字框来提供过滤包含或不包含的单词,并且它在对象(缺陷、用户故事和任务)的许多字段中执行此操作,例如注释和描述。

我们刚刚意识到,如果我们在排除框中指定一个无意义的词,它返回的结果比不指定该词的结果要少。我相信如果我们指定一个在搜索结果中任何地方都不存在的单词,如果我们没有指定这个搜索条件,它应该是完全相同的结果。

我把它缩小到只有 Notes 字段。其余查询返回预期结果。

(注意!包含“伊利丹”)

这就是我使用它的方式。我正在 Web 服务 api 页面上进行测试,所以我已经完全从等式中删除了我的应用程序。如果我只使用该查询搜索缺陷,我会得到 4512 个结果。如果我只运行一个空查询,我会得到 16526 个结果。但是我的测试词不包含在缺陷中的任何地方,通过搜索确认(Notes 包含“illidan”),它返回 0 个结果。

我在这里遗漏了什么,或者这是 Rally 中的错误吗?

4

1 回答 1

0

西蒙的评论恰到好处。在一个小得多的数据集上进行测试,我看到 !contains 的工作方式如下:

(注意!包含“伊利丹”)

将返回备注字段非空 且不包含“Illidan”的所有缺陷。因此,如果您有:

  • N 缺陷
  • CN 带有空注释字段的缺陷
  • 包含字符串“illidan”的 Notes 字段的零缺陷

您的查询将返回 (N - EN) 缺陷。

这在 Rally 的查询帮助系统中没有记录,增加了混乱。但是,就查询逻辑的功能而言,这是预期的行为。

我将向 Rally 的文档团队提交增强请求,以更好地记录此行为。

于 2013-05-24T02:19:20.393 回答