MarkLogic - указатель диапазона свойств для подмножества документов в базе данных

Версия MarkLogic - 9.0-6.2

В нашей базе данных FINAL концентратора данных каждая сущность имеет свойство под названием «TransactionRequestDtTm», что означает, что буквально каждый документ в базе данных имеет это свойство.

Для одной конкретной коллекции у меня есть требование получить документы, у которых значение TransactionRequestDtTm больше, чем временная метка ввода. Я думаю об использовании индекса диапазона для свойства TransactionRequestDtTm, но, насколько я понимаю, MarkLogic извлекает все документы, которые имеют свойство TransactionRequestDtTm, в память после инициализации. В моем случае это означает, что вся база данных будет загружена в память.

Исправьте мое понимание, если фактическое поведение отличается. Есть ли способ указать, что индекс диапазона требуется только для определенной коллекции (можно использовать другое имя свойства)? Пожалуйста, предложите!


person Bhanu    schedule 06.12.2018    source источник


Ответы (1)


Без индекса диапазона MarkLogic действительно нужно было бы открывать каждый документ, чтобы проверить метку времени. С помощью интеллектуального кода он, вероятно, мог бы сделать это в потоковом режиме, поэтому он не уничтожит всю вашу память, но и не будет быстро.

Индекс диапазона предварительно загружается в память, но не содержит документов целиком, а только ссылку на них в сочетании со значениями индекса диапазона, которые встречаются в каждом документе. Это самый быстрый способ найти совпадающие документы, и он предотвратит нехватку памяти, при условии, что вы не пытаетесь получить все совпадающие документы после поиска.

Вы не можете указать MarkLogic разместить индекс диапазона только для подмножества документов, но обычно в этом нет необходимости. Если вы хотите, чтобы возвращалось пересечение, просто запросите те результаты, которые соответствуют обоим критериям. MarkLogic может очень быстро находить совпадения из индексов.

Используйте поиск cts, чтобы поиграть с этим, и убедитесь, что вы выбрали только первые 10 документов. Вы увидите, что это будет очень быстро.

HTH!

person grtjn    schedule 06.12.2018