MarkLogic 中的 search:search() 与 cts:search()

Posted

技术标签:

【中文标题】MarkLogic 中的 search:search() 与 cts:search()【英文标题】:search:search() vs cts:search() in MarkLogic 【发布时间】:2015-11-29 17:13:08 【问题描述】:

我已经分别阅读了cts:search()search:search(),但无法弄清楚它们之间的确切区别。它说cts:search() 最终使用search:search()。 任何人都可以详细说明应该使用cts:search()search:search() 的场景。这与我需要实施的某些特定项目工作无关,但总的来说。

谢谢!

【问题讨论】:

【参考方案1】:

还值得一提的是:

Client REST API,基本上将 Search API 公开为 HTTP 接口 Java Client API,将客户端 REST API 公开为一组方便的 Java 对象和方法 Node.js Client API,将客户端 REST API 公开为一组方便的 No​​de.js 对象和方法

HTH!

【讨论】:

【参考方案2】:

搜索 API(例如 search:search())是一个 XQuery 库,它为 MarkLogic 的一些核心功能(例如搜索、构面和聚合)提供高级接口。它使用底层的cts:*(和其他)库,但会为大多数开发人员节省大量的打字和调试工作。

一般来说,我建议从 Search API 开始。我们付出了很多努力来确保它的强大和快速。例如,在进行分面搜索时,它会协调获取搜索结果并从范围索引中并行计​​算分面。您可以通过 Search API 开箱即用地获得许多其他便利和最佳实践示例。如果您需要做的事情比 Search API 提供的更多或不同,有几个地方可以让您使用较低级别的 cts:query 实例。例如,search:resolve() 采用 cts:query 并调用 search:search() 的等效项。

此外,对于那些在Server-Side javascript 工作的人,即将发布的 8.0-4 版本将引入一个类似定位的专为 JavaScript 设计的高级库。

【讨论】:

谢谢!真的很有帮助。 @Tia 如果这回答了您的问题,请单击按钮接受它——这有助于我们跟踪哪些问题仍需要回复。谢谢!

以上是关于MarkLogic 中的 search:search() 与 cts:search()的主要内容,如果未能解决你的问题,请参考以下文章

marklogic 中的内存元素是啥?

MarkLogic 的 xQuery 中的正则表达式

Marklogic xml 转换中的 XSLT 3.0 支持

如何使用 JavaApi 将 XML 中的重音字符写入 MarkLogic?

如何检查传递的对象是否是MarkLogic中的有效JSON?

使用Marklogic(XQuery)中的时间戳生成非重复随机数?