我们需要使用Marklogic的REST API将搜索限制为托管文档的最新版本。我们正在使用MarkLogic 6。
使用直接的XQuery,你可以在additional-query选项中使用dls:documents-query()(请参见Is there any way to restrict marklogic search on specific version of the document)。
但是REST API需要XML,而不是任意的XQuery。你可以轻松地将普通的cts查询转换成XML(在QConsole中执行{cts:word-query("hello world")})。
如果我尝试对dls:documents-query()这样做,我会得到下面这个结果:
除了不完全透明之外,那个数字有多安全?我们需要将其放入查询选项中,因此它不是每次需要时都可以重新生成的。我在这里看了两个不同的安装程序,这个数字是相同的,但它是否保证相同,并且是否会改变?比如,在 MarkLogic 升级时会发生什么?
此外,假设该数字是安全的,那么注册查询始终会存在吗?文档说明系统可能会定期清除已注册的查询,但它所讨论的是用户定义的注册查询,我不确定其中有多少适用于内部查询。
这是正确的方法吗?如果我们无法这样做,我们可以始终设置集合并通过这种方式限制搜索,但我们更愿意使用 dls:documents-query(如果可能)。
使用直接的XQuery,你可以在additional-query选项中使用dls:documents-query()(请参见Is there any way to restrict marklogic search on specific version of the document)。
但是REST API需要XML,而不是任意的XQuery。你可以轻松地将普通的cts查询转换成XML(在QConsole中执行{cts:word-query("hello world")})。
如果我尝试对dls:documents-query()这样做,我会得到下面这个结果:
<cts:properties-query xmlns:cts="http://marklogic.com/cts">
<cts:registered-query>
<cts:id>17524193535823153377</cts:id>
</cts:registered-query>
</cts:properties-query>
除了不完全透明之外,那个数字有多安全?我们需要将其放入查询选项中,因此它不是每次需要时都可以重新生成的。我在这里看了两个不同的安装程序,这个数字是相同的,但它是否保证相同,并且是否会改变?比如,在 MarkLogic 升级时会发生什么?
此外,假设该数字是安全的,那么注册查询始终会存在吗?文档说明系统可能会定期清除已注册的查询,但它所讨论的是用户定义的注册查询,我不确定其中有多少适用于内部查询。
这是正确的方法吗?如果我们无法这样做,我们可以始终设置集合并通过这种方式限制搜索,但我们更愿意使用 dls:documents-query(如果可能)。