为什么 REST 搜索请求中的多个 "collection" URL 参数 return 没有结果?
Why does multiple "collection" URL parameters in REST search request return no results?
根据 MarkLogic 文档,"collection" 参数可以在对 REST 客户端 API 的 GET 请求中出现多次;但是,以下 returns 0 个结果:
/LATEST/search?q=&collection=GEWN&collection=TSJN
而在同一数据库上指定两个集合的 XQuery 确实 return 预期结果:
count(collection(("GEWN","TSJN")))
=>
90871
使用 REST API 单独查询一个命名集合 return 预期结果。
谢谢。
URI参数提供的集合是AND相关的。作为查询提供的等效项是:
<search:query>
<search:and-query>
<search:collection-query>
<search:uri>GEWN</search:uri>
</search:collection-query>
<search:collection-query>
<search:uri>TSJN</search:uri>
</search:collection-query>
</search:and-query>
</search:query>
当多个集合传递给单个 fn:collection()
或 cts:collection-query()
调用时,这些集合是 OR 相关的。要获得等效项,请提供以下查询:
<search:query>
<search:collection-query>
<search:uri>GEWN</search:uri>
<search:uri>TSJN</search:uri>
</search:collection-query>
</search:query>
这里是JSON中集合查询的参考:
http://docs.marklogic.com/guide/search-dev/structured-query#id_76890
希望对您有所帮助,
根据 MarkLogic 文档,"collection" 参数可以在对 REST 客户端 API 的 GET 请求中出现多次;但是,以下 returns 0 个结果:
/LATEST/search?q=&collection=GEWN&collection=TSJN
而在同一数据库上指定两个集合的 XQuery 确实 return 预期结果:
count(collection(("GEWN","TSJN")))
=> 90871
使用 REST API 单独查询一个命名集合 return 预期结果。
谢谢。
URI参数提供的集合是AND相关的。作为查询提供的等效项是:
<search:query>
<search:and-query>
<search:collection-query>
<search:uri>GEWN</search:uri>
</search:collection-query>
<search:collection-query>
<search:uri>TSJN</search:uri>
</search:collection-query>
</search:and-query>
</search:query>
当多个集合传递给单个 fn:collection()
或 cts:collection-query()
调用时,这些集合是 OR 相关的。要获得等效项,请提供以下查询:
<search:query>
<search:collection-query>
<search:uri>GEWN</search:uri>
<search:uri>TSJN</search:uri>
</search:collection-query>
</search:query>
这里是JSON中集合查询的参考:
http://docs.marklogic.com/guide/search-dev/structured-query#id_76890
希望对您有所帮助,