java - Marklogic 在 optic Java API 中执行 sql 查询

标签 java sql marklogic

我正在研究Marklogic Java Optic API,想要对CTS查询返回的全文搜索结果执行sql查询。我的代码由 cts.andQuery() 组成,我想对 cts 查询结果执行 sql 查询。 像这样的东西:

ModifyPlan modifyPlan = planBuilder.fromView(getSchemaName(), getViewName())
.select("col_1","col_2")
.where(planBuilder.cts.andQuery(planBuilder.cts.wordQuery("val1"), planBuilder.cts.wordQuery("val2") ));

上面的代码可以工作,但我想在我的 java 类中对此结果应用 sql 查询。

最佳答案

您能详细说明一下您正在尝试做的事情以及您遇到的障碍吗?

上面的查询是一个关系查询 - 它检索行,但仅检索从 cts.query 匹配的文档中填充的行

如果将 where() 操作放在 select() 操作之前,则该操作序列在概念上等同于引擎执行操作的方式。

Optic 构建器提供与 SQL 子句等效的操作,包括

  • select() 进行投影
  • 列 boolean 表达式上的 where() 用于过滤
  • groupBy() 用于聚合
  • joinInner() 或 joinLeftOuter() 用于 View 之间的连接

等等。您可以按任意顺序进行任意数量的此类操作。例如,同一查询可以有一个基于 cts.query 进行过滤的 where() 操作,后跟一个基于列的 boolean 表达式进行过滤的 where() 操作。

换句话说,Optic构建器没有SQL语法的人为约束,而是直接公开关系操作。

关于java - Marklogic 在 optic Java API 中执行 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49279870/

相关文章:

javascript - 拆分多个 Json Javascript

mysql - 如何比较两个表并显示每个差异

marklogic - 集成 Marklogic Envision 和 DataHubFramework

xquery - 如何使用 xdmp :node-replace()? 返回完整文档

marklogic - 在 Marklogic 中监控备份和恢复

java - 使用 JDBC 检索给定表的所有索引

java - Java中线程的高效异常处理

java - Gluon Project中如何引用android.jar

sql - 按 IN 子句的顺序选择记录

sql - 为什么数据库在更新行时执行删除和插入操作?