如何使用Marklogic中的脚本创建字段索引

时间:2018-06-02 15:06:10

标签: marklogic marklogic-8

我对使用脚本创建字段索引感兴趣。 看到一个用include root创建字段索引的函数。 没有找到可以用路径索引创建字段的函数。

试过这个功能

admin:database-add-field-paths($config, $dbid, $field-name, $field-path)

错误地显示“无字段存在”。

对此提出任何建议。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找admin:database-path-field。它的输出可以使用admin:database-add-field添加到管理配置中,大致如下:

let $config := admin:get-configuration()
let $dbid := xdmp:database()
let $fieldspec := 
    let $field-name := "myField"
    let $field-paths := admin:database-field-path("/a/b", xs:double(2.0))
    return
        admin:database-path-field($field-name, $field-paths)

let $newConfig := admin:database-add-field($config, $dbid, $fieldspec)

管理REST api也许值得一看,它允许从外部部署配置,并且编程更少。您需要向:8002/manage/v2/databases/[id-or-name]/properties发送PUT请求,并将以下内容作为有效负载的一部分:

"field": [
    {
      "field-name": "status",
      "field-path": [
        {
          "path": "/pdbe:person-envelope/pdbm:person/pdbm:status",
          "weight": 1
        },
        {
          "path": "/pdbm:person/pdbm:status",
          "weight": 1
        }
      ],
      "field-value-searches": true
    }
]

HTH!