MarkLogic: создать временную коллекцию в определенной базе данных - PullRequest
0 голосов
/ 18 марта 2019

MarkLogic версия: 9.0-6.2

Мое требование состоит в том, чтобы включить двухвременную базу данных FINAL, поэтому я создал требуемые индексы и оси диапазона полей. Наконец, я создал временную коллекцию, как показано ниже (выполняется в запросе concole с data-hub-FINAL в качестве выбранной базы данных)

const temporal = require("/MarkLogic/temporal.xqy");
const collectionResult = temporal.collectionCreate(
"customer", "system-axes", "valid-axes");

Однако я заметил, что область действия временной коллекции распространяется и на STAGING DB. Когда я пытался выполнить обычный xdmp.documentInsert на STAGING DB, передавая коллекцию 'customer', я получаю сообщение об ошибке, что не могу передать имя коллекции, поскольку коллекция клиентов является временной.

Я работал, используя другое имя коллекции (customerStaging), но это ожидаемое поведение temporal.collectionCreate? Есть ли способ, которым я могу ограничить временную коллекцию БД, чтобы я мог использовать ту же коллекцию, что и временную коллекцию в других БД?

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 18 марта 2019

Временные настройки хранятся в базе данных схем, прикрепленной к базе данных контента.Похоже, вы не используете последнюю версию DHF, у которой есть отдельные конечные схемы и отдельная база данных промежуточных схем.Лучше обновить до последней версии, чтобы иметь возможность использовать это.

В качестве альтернативы, вы можете рассмотреть возможность использования универсальных одно-временных / двухвременных коллекций и отдельных логических коллекций, таких как «клиент».Документ может иметь более одной коллекции.

HTH!

...