是否可以使用 Zorba(和 xquery/jsoniq)来查询存储在文件系统以外的文件中的文档?我从 28msec 看到了一个幻灯片,其他人建议他们这样做了,但我不确定是怎么做的。我不知道他们是否使用了 3rd 方代码或其他东西。
我尝试并喜欢 Basex,但它不支持 JSONiq,我相信它不会向外扩展。
Zorba 不仅可以查询本地文件系统,还可以查询以可通过 REST API 访问的方式存储的任何文档。
首先,Zorba 提供了一些内置模块来连接 Couchbase、SQL 数据库等
http://www.zorba.io/documentation/latest/modules/connectors
其次,可以使用 REST 模块来实现对更多商店的支持:
http://www.zorba.io/documentation/latest/modules/zorba/io/http-client
对于要支持的每个新文档存储,通常会创建一个新的用户定义模块,将 REST 调用包装到一个模仿文档存储的 JSONiq 模块 API,以自然映射到底层 REST API 的方式(例如,连接、获取、放置、更新、删除……)。该模块函数的参数可以是 JSON 对象或 XML 文档,与实际作为内容/正文传递给 REST API 的那些几乎相同(例如,通过示例查询)。
了解模块语法后,这通常需要大约 1000 行代码和几天的时间,如果适用,可以轻松地与其他用户共享,例如在 GitHub 上,因为它主要是单个模块文件。一些这样的模块可以在线获得。
还应该说,Zorba 也支持标准化的 EXPath HTTP 客户端(类似于另一个,但一般参数以 XML 格式而不是 JSON 格式传递)。这意味着任何设计用于查询基于 XML 的文档存储的模块甚至应该可以与除 Zorba 之外的 XQuery/JSONiq 引擎进行互操作。
也可以支持不支持 REST 的文档存储,但这需要 C++ 编码并且涉及更多。
既然你提到了扩展,我还应该提到 Sparksoniq,它可以扩展以查询存储在 HDFS 上的 JSON 数据(测试多达数十亿个对象)。
我希望这可以进一步帮助您。