我正在研究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:计划:执行(计划:sparql(" * {http://marklogic.com/templateview。http://marklogic.com/templateview。http://marklogic.com/templateview。过滤器(products.md5Digest eq occurrences.md5Digest)过滤器(products.md5Digest eq recordsView.md5Digest)FILTER(adDescription eq Q {http://www.w3.org/2001/XMLSchema} string(" QSR / CEC"))}"),(),()) - 三重索引排列未启用
这里是使用sparql但我想只使用光学sql我也不想启用三重索引排列。 我不知道到底哪里错了。 任何帮助表示赞赏。
答案 0 :(得分:1)
数据库是否已从先前版本升级到MarkLogic 9?
如果是这样,可能需要重新索引数据库:
http://docs.marklogic.com/messages/XDMP-en/XDMP-TRPLPERMNOTFOUND
希望有帮助,