【问题标题】:MarkLogic Java API - QueryManager with JAXB?MarkLogic Java API - 带有 JAXB 的 QueryManager?
【发布时间】:2013-07-08 08:32:32
【问题描述】:

以下工作正常:

XMLDocumentManager docMgr = client.newXMLDocumentManager();

JAXBContext context = JAXBContext.newInstance(Document.class);
JAXBHandle jaxbHandle = new JAXBHandle(context);
docMgr.read(
  "/masters/1337-12/t/1439-1074_2013_2_toc.xml",
  jaxbHandle);

Assert.assertNotNull(jaxbHandle);

Document document = (Document) jaxbHandle.get();

但是,如果我不知道文档 URI,我可以做什么,我必须进行如下搜索:

StructuredQueryBuilder qb = new StructuredQueryBuilder(
  "OPTIONS_NAME");
StructuredQueryDefinition querydef = qb.valueConstraint("tocId",
  tocId);
// contains RAW data - 
StringHandle resultsHandle = queryMgr.search(querydef, new StringHandle());

如何使用 JAXB 转换此结果?

【问题讨论】:

  • 好吧..因为 JAVA API 很慢(现已测试)我会切换到 XCC..
  • 我很想更好地了解 Java API 的性能在哪些方面没有达到您的期望。你能提供更多细节吗?

标签: marklogic


【解决方案1】:

对于搜索结果的 POJO 接口,请使用内置的 SearchHandle 类。

在将树数据结构从 Java 对象往返往返于 XML 时,JAXB 最容易使用(因此对您自己的内容很有用)。

在性能方面,XCC 在直接操作文档方面比 Java API 更快。这就是 MLCP 使用 XCC 进行摄取的原因。对于与数据库交互的大多数应用程序(尤其是那些需要 REST API 公开的增值服务的应用程序)而言,性能差异并不显着。

【讨论】:

    猜你喜欢
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多