gpt4 book ai didi

java - 使用 Marklogic 的 Java API 和 JAXB 对文档进行列表/搜索/分页

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:15 25 4
gpt4 key购买 nike

我正在学习如何通过 Java API 使用 Marklogic 6,现在我想了解如何在 Java 和 JAXB 中搜索/列出/分页文档。具体来说:

假设我有一组这样的用户文档:

/user/joe453.xml
/user/karla47.xml
.
.
.
/user/sam.xml
/user/tom.xml

用户的定义有点像这样:

<user userId="aaabbb123" passwordHash="bcryptHash">
<role id="USER"> <--- other role types here depending on the kind of user.
</user>

我知道如果我想通过 userId 属性搜索特定用户,我可以进行基于键/值的搜索。然而:

1) 在最简单的情况下,我应该使用 Java API 的哪些功能对所有这些用户进行列表/分页?

2) 我知道我可以使用 XCC 执行临时 XQuery,但我上次在 SQL 中使用硬编码查询字符串时吸取了糟糕的教训。我可以看到与 XML/Marklogic 类似的命运。

3) 有更好的方法吗?

谢谢!

最佳答案

数据消音器:

要让搜索返回整个文档,您可以设置查询选项以将整个文档作为片段返回:

<transform-results apply="raw"/>

然后,在客户端上,您可以通过 JAXB 解码器传递由 JAXB 保存的搜索结果的内容,以混合 Java 对象。

作为替代方案,Java API 包括 SearchCollector 示例,它返回一个多部分/混合负载,其中每个部分都是一个搜索结果文档。然后可以解码通过 JAXB 保存的文档。

撇开细节不谈,总体策略非常明智——利用 MarkLogic 搜索,使用对象或主题的任何字段获取感兴趣的持久化对象。

当然,主键仍然具有直接访问的值(value)。也就是说,如果对象具有与实体身份不可变地对应的某些字段组合,则利用这些字段来制作文档 uri,并在搜索过度时使用它来直接访问对象。

关于java - 使用 Marklogic 的 Java API 和 JAXB 对文档进行列表/搜索/分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18392650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com