我正在尝试过滤天蓝色搜索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')"
有人能指出我正确的方向吗?提前谢谢。
答案 0 :(得分:2)
过滤多个值的最佳方法是使用新的search.in
函数:
FirmTypes/any(x: search.in(x, 'Big 4|Industry', '|'))
对于大量值,search.in
明显快于使用or
和eq
的组合,并且它可以处理更大数量的值而不会达到硬限制过滤复杂性。
答案 1 :(得分:0)
我发布后立即知道了。如果其他人有同样的问题
"FirmTypes / any (x: x eq 'Big 4') or FirmTypes / any (x: x eq 'Industry')"