Нам нужно ограничить поиск MarkLogic самой последней версией управляемых документов, используя REST apache Marklogic. Мы используем MarkLogic 6.Marklogic REST API ищет последнюю версию документа
Использование прямого XQuery, вы можете использовать dls:documents-query()
в качестве опции дополнительного-запроса (см Is there any way to restrict marklogic search on specific version of the document).
Но для REST api требуется XML, а не произвольный xquery. Вы можете легко превратить обычные запросы cts в XML (выполнить <some-element>{cts:word-query("hello world")}</some-element>
в QConsole).
Если я пытаюсь что с dls:documents-query()
я получаю это:
<cts:properties-query xmlns:cts="http://marklogic.com/cts">
<cts:registered-query>
<cts:id>17524193535823153377</cts:id>
</cts:registered-query>
</cts:properties-query>
Помимо того, что меньше, чем полностью прозрачны ... насколько безопасно это число? Нам нужно поместить его в наши параметры запроса, поэтому мы не можем регенерировать каждый раз, когда нам это нужно. Я посмотрел на две разные установки здесь, и номер тот же, но гарантированно ли он тот же, и будет ли он когда-либо изменяться? Например, обновление MarkLogic?
Кроме того, при условии, что номер является безопасным, будет ли всегда зарегистрирован запрос? В документации указано, что зарегистрированные запросы могут быть очищены системой в разное время, но речь идет о пользовательских зарегистрированных запросах, и я не уверен, насколько это относится к внутренним запросам.
Это даже правильный подход? Если мы не сможем сделать это, мы всегда можем создавать коллекции и ограничивать поиск таким образом, но мы бы предпочли использовать dls:documents-query
, если это возможно.
А, это работает. Мы бы предпочли не дублировать существующие конечные точки, если нам это не нужно, на данный момент. Благодаря! – paloma