MarkLogic 搜索 return 个文档集合
MarkLogic Search return document collections
如果您使用搜索api[=23=,有没有办法return文档的集合 ]?
我在 Query Options Reference 中找不到该用例的选项。
现在我必须围绕搜索构建自己的包装器 api 并自己找到搜索结果集合:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
let $docs := search:search("query")
return for $doc in $docs
return xdmp:node-collections(doc($doc/search:result/@uri))
编辑:marklogic java 客户端 api.
也应该可用
如果您使用的是 MarkLogic REST api,您可以在 /v1/search
上使用 category
参数来提取 metadata
而不是内容。如果您想将其混合到搜索结果中,最好使用 transform
参数对 /v1/search
进行 REST 转换。另见:
https://docs.marklogic.com/REST/GET/v1/search
HTH!
要仅获取文档元数据(例如集合)而不是文档内容,请编写并安装服务器端转换,该转换在文档上调用 xdmp:node-collections() 并构建替换文档。参见:
http://docs.marklogic.com/guide/java/transforms
然后调用QueryDefinition.setResponseTransform()方法指定服务端转换:
在将查询定义传递给 DocumentManager.search() 方法之前:
作为脚注,DocumentManager.search() 方法可以通过在搜索前调用 DocumentManager.setMetadataCategories() 来在单个请求中检索文档元数据和内容,而无需服务器端转换。参见:
希望对您有所帮助,
如果您使用搜索api[=23=,有没有办法return文档的集合 ]?
我在 Query Options Reference 中找不到该用例的选项。
现在我必须围绕搜索构建自己的包装器 api 并自己找到搜索结果集合:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
let $docs := search:search("query")
return for $doc in $docs
return xdmp:node-collections(doc($doc/search:result/@uri))
编辑:marklogic java 客户端 api.
也应该可用如果您使用的是 MarkLogic REST api,您可以在 /v1/search
上使用 category
参数来提取 metadata
而不是内容。如果您想将其混合到搜索结果中,最好使用 transform
参数对 /v1/search
进行 REST 转换。另见:
https://docs.marklogic.com/REST/GET/v1/search
HTH!
要仅获取文档元数据(例如集合)而不是文档内容,请编写并安装服务器端转换,该转换在文档上调用 xdmp:node-collections() 并构建替换文档。参见:
http://docs.marklogic.com/guide/java/transforms
然后调用QueryDefinition.setResponseTransform()方法指定服务端转换:
在将查询定义传递给 DocumentManager.search() 方法之前:
作为脚注,DocumentManager.search() 方法可以通过在搜索前调用 DocumentManager.setMetadataCategories() 来在单个请求中检索文档元数据和内容,而无需服务器端转换。参见:
希望对您有所帮助,