是否可以在服务器端javascript(通过cts.*
或jsearch.*
)或Node.js API上执行结构化查询?
根据文档(https://docs.marklogic.com/guide/search-dev/structured-query#id_47703),它可能只能通过XQuery,Java或REST API实现。
我的印象是XQuery和服务器端javascript实现具有相同的功能。
答案 0 :(得分:3)
等效表达能力并不一定意味着相同的接口。
结构化查询主要用于REST,Java和Node.js客户端API。使用Node.js客户端API queryBuilder接口构造结构化查询。请参阅http://docs.marklogic.com/guide/node-dev/search#id_28266。
或者,如果由于某种原因不想使用构建器,则可以滚动自己的包含结构化查询的组合查询。请参阅http://docs.marklogic.com/guide/node-dev/search#id_57610。
在服务器端,推荐的JS搜索API是jsearch。请参阅http://docs.marklogic.com/js/jsearch和http://docs.marklogic.com/guide/search-dev/javascript#chapter。 Jsearch在cts:queries上运行。结构化查询实际上只是cts:query的一个薄层。
可以从JS调用search:resolve(作为search.resolve),就像任何其他XQuery库一样,但它是以XML为中心的,所以从JS中使用它并不是很方便。