Marklogic : 光学 sql 查询在内部转换为 plan:execute(plan:sparql(""))

Marklogic : optic sql query internally converted into plan:execute(plan:sparql(""))

我正在研究 MarkLogic Optic API(模板驱动提取;TDE)并尝试 运行 使用 Java API 进行查询。我在从嵌套模板中提取数据时遇到问题。我在这里应用简单的等于操作,如

let $template  := op:from-view("records", "recordsView") 
let $templateProducts :=op:from-view("records", "products")
let $templateOccurrences :=op:from-view("records", "occurrences")
return $template
 =>op:join-inner(op:from-view("records", "products")
 =>op:join-inner(op:from-view("records", "occurrences"), op:on(op:view-col("products", "md5Digest"), op:view-col("occurrences", "md5Digest"))), op:on(op:view-col("products", "md5Digest"), op:view-col("recordsView", "md5Digest")))
 =>op:where(op:eq(op:col("adDescription"), "QSR/CEC"))
 =>op:result()

然后它抛出错误

XDMP-TRPLPERMNOTFOUND: plan:execute(plan:sparql(" * { http://marklogic.com/templateview . http://marklogic.com/templateview . http://marklogic.com/templateview . FILTER (products.md5Digest eq occurrences.md5Digest) FILTER (products.md5Digest eq recordsView.md5Digest) FILTER (adDescription eq Q{http://www.w3.org/2001/XMLSchema}string("QSR/CEC")) }"), (), ()) -- Triple index permutation not enabled

此处使用的是 sparql,但我只想使用 optical sql,而且我不想启用三重索引排列。 我不知道到底出了什么问题。 感谢您的帮助。

数据库是否从之前的版本升级到MarkLogic 9?

如果是这样,可能需要重新索引数据库:

http://docs.marklogic.com/messages/XDMP-en/XDMP-TRPLPERMNOTFOUND

希望对您有所帮助,