1

如果集合中有多个字符串中的任何一个,我正在尝试过滤天蓝色搜索 edm.collection 以返回结果。我只能在查询一个项目时让它工作,这对我的用例来说还不够好。我找不到查询多个参数的语法。

filter += "FirmTypes / any (x: x eq 'Big 4')";

以上工作并返回公司类型为 Big 4 的所有文件。

我尝试了多种方法(以下一些)来过滤多个参数但没有成功

//filter += " OR any (x: x eq 'Industry')";
//filter += "FirmTypes / any (x: x eq 'Industry')";
//filter += "FirmTypes / any (x: x eq 'Big 4', 'Industry', 'PLC')"
//filter += "FirmTypes / any (x: x eq 'Big 4' or 'Industry' or 'PLC')"
//filter += "FirmTypes / any (x: x eq 'Big 4') or (x: x eq 'Industry')"
//filter += "FirmTypes / any (x: x eq 'Big 4')|(x: x eq 'Industry')"

有人可以指出我正确的方向吗?先感谢您。

4

2 回答 2

4

过滤多个值的最佳方法是使用新search.in函数:

FirmTypes/any(x: search.in(x, 'Big 4|Industry', '|'))

对于大量的值,search.in比使用 和 的组合要快得多oreq并且它可以处理更多的值,而不会达到过滤器复杂性的硬性限制。

于 2017-11-16T01:21:47.767 回答
0

我一发布就知道了。如果其他人有同样的问题

"FirmTypes / any (x: x eq 'Big 4') or FirmTypes / any (x: x eq 'Industry')"
于 2017-11-15T19:11:50.507 回答