Я работаю над MarkLogic Optic API (Template Driven Extraction; 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, но я хочу использовать только optic sql, также я не хочу включать тройную перестановку индексов. я точно не знаю, что не так. любая помощь приветствуется.
Была ли база данных обновлена с предыдущей версии до MarkLogic 9?
Если это так, возможно, потребуется переиндексировать базу данных:
http://docs.marklogic.com/messages/XDMP-en/XDMP-TRPLPERMNOTFOUND
Надеясь, что это поможет,