gpt4 book ai didi

java - MarkLogic 关于使用 Java API 进行 SELECT 等效操作的基本问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:25 26 4
gpt4 key购买 nike

我是 NoSQL 新手,正在仔细阅读文档。

我有一个 MarkLogic DB 实例,其中填充了我感兴趣的 JSON 文档。我已经执行了基本搜索,并且有一个 SearchHandle 可以为我提供匹配的 URI。

太棒了。

我想评估这些 JSON 文档中某些特定键的值

在 SQL 中,这是一个简单的 SELECT from where ='somevalue'。

在这里,我正在努力寻找实际完成此任务的正确方法。我设置了 JSONDocumentManager,建立了搜索词标准来获取我的文档,然后将结果返回到 StringHandle。

我现在需要解析扁平化的 JSON 字符串来查找我的 key 吗?

我是否需要通过 JacksonHandle 绑定(bind)将整个 JSON 文档转换为 POJO,只是为了通过 URI 查找文档中的单个值?

我忍不住想这可能是我在文档中没有发现的一句话......

最佳答案

拉维克:

与 SQL SELECT(专为结果集设计,仅针对筛选到一行并投影一列的查询返回单个值)一样,MarkLogic 查询响应旨在从非常大的数据集中返回多个文档、结构或值。与 SQL 中一样,单个值是查询的一种特殊情况,它限定一个文档并提取一个值。

定义该查询的最简单方法可能是使用通过示例查询进行提取。请参阅:

http://docs.marklogic.com/guide/search-dev/qbe#id_54044

您还可以使用管理 UI 在文档中的 JSON 键上定义范围索引:

http://docs.marklogic.com/guide/rest-dev/search#id_95526

然后使用 QueryManager.values() 方法从范围索引中提取一个值。

MarkLogic 7 确实支持 SPARQL,它具有获取单个答案的语法,因此通过将数据保存为三元组,这些查询将成为可能。

为了完整起见:您还可以使用 StructuredQueryBuilder 并使用 JSON 键指定值查询来过滤 JSON 键,如(未经测试):

StructuredQuery queryDef = queryBldr.value(queryBldr.jsonKey("key"),"value");

或者使用示例查询(未经测试):

StructuredQuery queryDef = newRawQueryByExampleDefinition(new StringHandle("{\"$query\":{\"key\":\"value\"}}"));

有关这些过滤功能的更多详细信息,请参阅:

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/StructuredQueryBuilder.html http://docs.marklogic.com/guide/search-dev/qbe

顺便说一句,Jackson 不仅可以用于与 POJO 的数据绑定(bind),还可以用于对 JSON 进行临时 DOM 访问。

希望有所帮助。

关于java - MarkLogic 关于使用 Java API 进行 SELECT 等效操作的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431350/

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