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

时间:2017-05-11 12:23:04

标签: xquery marklogic

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

  1. 在Cent Os上安装MarkLogic 9(完成且没有错误)
  2. 创建森林(完成且没有错误)
  3. 创建数据库(完成且无错误)
  4. 插入数据(完成且无错误)
  5. 直到我创建模板视图(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
    

    你知道出了什么问题吗?

    曼尼谢谢

    埃里克

2 个答案:

答案 0 :(得分:2)

感谢所有的帮助和反应。似乎我之前有MarkLogic的版本,TDE尚未得到支持。我完全删除了ML并安装了ML 9.0 XX

  1. 创建一个数据库SQLData和一个林目森林-SQL-Data
  2. 在启用
  3. 时设置属性三重索引
  4. 创建一个数据库SQLSchema和一个林SQLSchema
  5. 在SQLData数据库的查询控制台中运行以下查询以创建视图:
  6. 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数据库中运行它,它将不起作用。

答案 1 :(得分:2)

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

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

我们MarkLogic也刚刚发布了一个关于所有新MarkLogic 9功能的4小时自学课程 - 包括TDE。请看一下 - http://www.marklogic.com/training-courses/whats-new-marklogic-9/ - 它肯定会帮助您快速了解数据库的最新增加内容。 (您也可以在课程结束时完成评估。)