使用XPath谓词优化XQuery interogation

Den*_*Den 3 xpath xquery exist-db

所以,我正在优化我从SQL中继承的查询,与之前在sql中工作的方式相比,我遇到了一些性能问题.

基本上,我的PHP脚本发送2到5组两个(数字)值.

这些必须与我的集合元素中的id和doc进行比较.当然,谓词中的元素越少,带谓词的My for for现在看起来就越快:

for $p in collection("/db/col1")//set1/page[(id eq val1 and doc eq altval1) or (id eq val2 and doc eq altval2) or (id eq val3 and doc eq altval3) or (id eq val4 and doc eq altval4) or (id eq val5 and doc eq altval5)]
Run Code Online (Sandbox Code Playgroud)

我需要以某种方式编写一个根据值的数量而变化的谓词.我尝试编写一个函数来编写条件并在谓词中调用它,具体取决于传递了多少个值,但这似乎不起作用.

如果有人知道解决方法,我真的很感激.

编辑:删除了代码中的拼写错误.

Mic*_*Kay 5

如果$val$altval是值的两个序列,那么您可以编写通用的谓词

SOMETHING[some $i in 1 to count($val) satisfies (id=$val[$i] and doc=$altval[$i]] 
Run Code Online (Sandbox Code Playgroud)

但我不知道它会表现得多好.