从 Person 示例派生的 TDE 模板失败

TDE template derived from Person example fails

我正在使用 MarkLogic 9 并遵循有关 SQL 数据建模指南(https://docs.marklogic.com/guide/sql/intro)的教程 满足所有先决条件:

  1. 正在 Cent 上安装 MarkLogic 9 Os(完成无误)
  2. 创建森林(完成无误)
  3. 创建数据库(无误完成)
  4. 插入数据(完成无误)

直到我创建模板视图 (https://docs.marklogic.com/guide/sql/setup#id_14127) 当我在查询控制台中执行语句时出现以下错误:

[1.0-ml] SVC-FILOPN: File open error: open '/MarkLogic/tde.xqy': No 

such file or directory
Stack Trace

At line 2 column 0:
In xdmp:eval("xquery version &quot;1.0-ml&quot;; &#10;import module namespace ...", (), <options xmlns="xdmp:eval"><database>18182129315596444747</database>...</options>)
1. xquery version "1.0-ml"; 
2. import module namespace tde = "http://marklogic.com/xdmp/tde" 
3. at "/MarkLogic/tde.xqy";

MarkLogic的文件放在./opt/MarkLogic文件夹下,目录如下

erik@marklogic-vm /opt/MarkLogic $ ls -l
total 460
drwxr-xr-x  5 root root  53248 Apr 14 19:40 Admin
drwxr-xr-x 15 root root   4096 Apr 14 19:40 Apps
drwxr-xr-x  4 root root   4096 Apr 14 19:40 Assets
drwxr-xr-x  2 root root   4096 Apr 14 19:40 bin
drwxr-xr-x  3 root root  20480 Apr 14 19:40 Config
drwxr-xr-x  5 root root   4096 Apr 14 19:40 Converters
drwxr-xr-x  2 root root   4096 Apr 14 19:40 Docs
drwxr-xr-x  3 root root   4096 Apr 14 19:40 FlexRep
-rw-r--r--  1 root root  35147 Apr 11 09:08 GPL.txt
drwxr-xr-x  2 root root   4096 Apr 14 19:40 HealthCheck
drwxr-xr-x  2 root root   4096 Apr 14 19:40 include
drwxr-xr-x 12 root root   4096 Apr 14 19:40 Installer
drwxr-xr-x  3 root root   4096 Apr 14 19:40 java
drwxr-xr-x  2 root root  12288 Apr 14 19:40 Lang
-rw-r--r--  1 root root 250564 Apr 11 09:08 LEGALNOTICES.txt
-rw-r--r--  1 root root  18416 Apr 11 09:08 LGPL21.txt
-rw-r--r--  1 root root   7639 Apr 11 09:08 LGPL30.txt
drwxr-xr-x  2 root root   4096 Apr 14 19:40 lib
drwxr-xr-x  2 root root   4096 Apr 14 19:40 Messages
drwxr-xr-x  7 root root   4096 Apr 14 19:40 mlcmd
drwxr-xr-x  3 root root   4096 Apr 14 19:40 Modules
drwxr-xr-x  2 root root   4096 Apr 11 09:58 Plugins
drwxr-xr-x  8 root root   4096 Apr 14 19:40 Samples

你知道哪里出了问题吗?

曼尼谢谢

埃里克

感谢大家的帮助和反应。看来我以前的 MarkLogic 版本尚不支持 TDE。我完全删除了 ML 并安装了 ML 9.0 XX

  1. 创建一个数据库SQL数据和一个森林forest-SQL-数据
  2. 在启用时设置 属性 三重索引
  3. 创建一个数据库SQL架构和一个林SQL架构
  4. 在 SQLData 数据库的查询控制台中 运行 创建视图的以下查询:
xquery version "1.0-ml"; 

import module namespace tde = "http://marklogic.com/xdmp/tde" 
       at "/MarkLogic/tde.xqy";

let $employees :=
<template xmlns="http://marklogic.com/xdmp/tde">
  <context>/Employee</context>
  <rows>
    <row>
      <schema-name>main</schema-name>
      <view-name>employees</view-name>
      <columns>
        <column>
          <name>EmployeeID</name>
          <scalar-type>int</scalar-type>
          <val>ID</val>
        </column>
        <column>
          <name>FirstName</name>
          <scalar-type>string</scalar-type>
          <val>FirstName</val>
        </column>
        <column>
          <name>LastName</name>
          <scalar-type>string</scalar-type>
          <val>LastName</val>
        </column>
        <column>
          <name>Position</name>
          <scalar-type>string</scalar-type>
          <val>Position</val>
        </column>
       </columns>
    </row>
  </rows>
</template>

return tde:template-insert("/employees.xml", $employees)

如果您在 SQLSchema 数据库中 运行 它不起作用。

Erik - 在您的查询控制台中使用 tde:template-insert() 函数时,请确保您选择了 'content' 数据库(在您的情况下是 SQLData)而不是 SQLSchema 数据库。对 SQLData 数据库执行 template-insert() 函数会将模板插入到 SQLSchema 数据库。

此外,请确保您的 SQLData 数据库具有与之关联的 SQLSchema 数据库。

我们在 MarkLogic 最近还发布了一个 4 小时的自定进度课程,介绍所有新的 MarkLogic 9 功能 - 包括 TDE。请看一看 - http://www.marklogic.com/training-courses/whats-new-marklogic-9/ - 它一定会帮助您快速了解数据库的最新添加。 (您也可以在课程结束时进行评估)。