我正在研究Marklogic Java Optic API,并希望对CTS查询返回的全文搜索结果执行sql查询。我的代码由cts.andQuery()组成,我想在cts查询Result上执行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查询。
答案 0 :(得分:1)
你可以扩展你想要做的事情以及你遇到的障碍吗?
上面的查询是一个关系查询 - 它检索行,但只检索从cts.query匹配的文档中填充的行
如果在select()操作之前放置where()操作,那么操作序列在概念上与引擎执行操作的方式相同。
Optic构建器提供与SQL子句相同的操作,包括
等等。您可以按任何顺序进行任意数量的此类操作。例如,同一个查询可以有一个where()操作,该操作根据cts.query进行过滤,后跟一个where()操作,该操作根据列的布尔表达式进行过滤。
换句话说,Optic构建器没有SQL语法的人为约束,而是直接暴露关系操作。