【发布时间】:2018-06-02 15:06:10
【问题描述】:
我对使用脚本创建字段索引很感兴趣。 看到了一个使用包含根创建字段索引的函数。 没有找到可以创建带有路径索引的字段的函数。
试过这个功能
admin:database-add-field-paths($config, $dbid, $field-name, $field-path)
显示“没有字段存在”错误。
对此有任何建议。
【问题讨论】:
标签: marklogic marklogic-8
我对使用脚本创建字段索引很感兴趣。 看到了一个使用包含根创建字段索引的函数。 没有找到可以创建带有路径索引的字段的函数。
试过这个功能
admin:database-add-field-paths($config, $dbid, $field-name, $field-path)
显示“没有字段存在”错误。
对此有任何建议。
【问题讨论】:
标签: marklogic marklogic-8
我想你正在寻找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)
也许还值得看看 Management 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!
【讨论】: