我正在研究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/