我创建了一个模板,如下所示
declareUpdate();
var tde = require("/MarkLogic/tde.xqy");
var LocationView = xdmp.toJSON(
{
"template":{
"rows":[
{
"schemaName":"Location",
"viewName":"Location",
"columns":[
{
"name":"City",
"scalarType":"string",
"val":"City"
}
]
}
]
}
}
);
tde.templateInsert("Location.json", LocationView);
现在是否可以使用此模板创建语义关系,这样如果我进行语义查询,我可以从marklogic获取与此模式相关的数据?如果是,那怎么样?
答案 0 :(得分:0)
如果此视图仅由此模板填充,则实际上不需要显式关系。
但是,如果多个模板填充相同的视图,则直接的方法是每个模板添加一个sourceTemplate列,其中模板名称作为行中列的值。
当您使用不同结构摄取文档并从具有不同结构的文档中提取数据并将其映射到标准化视图时,多个模板可以填充相同的视图。
脚注:这个问题的语义标签让我想知道是否清楚视图相当于关系表。除了将行投影到视图中之外,TDE模板还可以投影三元组。基本建议是相同的,但方法是使用sourceTemplate谓词并指定模板名称作为三元组的文字对象。