因此,对于MarkLogic来说,新手是卡住了,找不到使用的文档。我知道我需要做什么,只是不知道该怎么做。
我有键值吗?在我的REST服务器上搜索,它返回ML的标准搜索结果和XML片段。我希望创建我自己的自定义搜索结果,它将为我的XML文件输出一个title元素。
我知道我需要创建一个XSLT转换文档并将其上传到服务器,但不知道如何针对ML的搜索函数,也不知道如何将其写出来。
我对XSLT有基本的了解,如果我只是创建了一些使用xPath针对每个文件标题的东西,这会起作用吗?还是ML需要使用它们的自定义函数?
我知道这有点宽泛,但希望有人能指点我。
发布于 2014-10-01 07:28:48
听起来像是在谈论获取/v1/键值 REST的MarkLogic端点。不幸的是,这不允许您选择转换。不过,您可能可以将获取/v1/搜索与转换参数一起使用,对元素值查询使用结构化查询。文档中包含了一个很好的语法引用。
有关创建和管理转换的文档可以在这里找到:
http://docs.marklogic.com/guide/rest-dev/transforms#chapter
哈哈!
发布于 2014-10-01 07:32:19
可以在搜索选项中使用extract-metadata
与search:search
或REST端点一起在结果中包含元数据元素或JSON属性中的标题元素:
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
search:search(
"my query string",
<options xmlns="http://marklogic.com/appservices/search">
<extract-metadata>
<qname elem-ns="" elem-name="title"/>
</extract-metadata>
</options>)
发布于 2014-10-01 06:57:50
这是键值还是全文?对于键值,您可以使用XPath。以/
、//
或fn:collection()
或fn:doc()
开头的任何fn:collection()
都将搜索整个数据库。您也可以搜索特定的文档或集合。
对于全文,您可能希望使用https://docs.marklogic.com/search:search -或者可能使用https://docs.marklogic.com/cts:search来进行真正的低级别控制。
有一些使用search:search
的示例代码来自https://github.com/marklogic/RunDMC的XSL,这可能会有所帮助。它不使用REST :它是一个传统的表单提交网页。但是view/search.xsl
代码可能会让您了解如何从XSLT调用search。
如果您需要从RunDMC调用XSL,那么该XQuery代码也可能对您有所帮助:看看controller/transform.xqy
。
https://stackoverflow.com/questions/26144120
复制相似问题