Как создать индекс поля с помощью скрипта в Marklogic - PullRequest
0 голосов
/ 02 июня 2018

Я заинтересован в создании индекса поля с помощью скрипта.Видел функцию, которая создает индекс поля с включенным корнем.Не удалось найти функцию, которая может создать поле с индексом пути.

Пробовал эту функцию

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

Показать "Нет поля существует" по ошибке.

Любое предложениена этом.

1 Ответ

0 голосов
/ 03 июня 2018

Я думаю, что вы ищете 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)

Возможно, стоит также взглянуть на API-интерфейс Management REST, который позволяет развертыватьконфигурация снаружи и с меньшим количеством программирования.Вам нужно было бы отправить запрос PUT на :8002/manage/v2/databases/[id-or-name]/properties, с чем-то вроде следующего как часть полезной нагрузки:

"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!

...