MarkLogic Search возврат коллекций документов - PullRequest
0 голосов
/ 13 сентября 2018

Есть ли способ вернуть коллекции документа, если вы используете поиск API ?

Не удалось найти параметр в Справочнике параметров запроса для этого варианта использования.

Прямо сейчас я должен был бы создать свою собственную оболочку вокруг поискового API и самостоятельно найти коллекции результатов поиска:

xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";

let $docs := search:search("query")

return for $doc in $docs
return xdmp:node-collections(doc($doc/search:result/@uri))

Редактировать: Это также должно быть доступно с API Java marklogic.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Чтобы получить только метаданные документа, такие как коллекции, а не содержимое документа, напишите и установите преобразование на стороне сервера, которое принимает вызовы xdmp: node-collection () в документе и создает замещающий документ. См:

http://docs.marklogic.com/guide/java/transforms

Затем вызовите метод QueryDefinition.setResponseTransform (), чтобы указать преобразование на стороне сервера:

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/QueryDefinition.html#setResponseTransform-com.marklogic.client.document.ServerTransform-

перед передачей определения запроса в метод DocumentManager.search ():

http://docs.marklogic.com/javadoc/client/com/marklogic/client/document/DocumentManager.html#search-com.marklogic.client.query.QueryDefinition-long-

В качестве сноски метод DocumentManager.search () может извлекать как метаданные, так и содержимое документа в одном запросе без преобразования на стороне сервера, вызывая DocumentManager.setMetadataCategories () перед поиском. См:

http://docs.marklogic.com/javadoc/client/com/marklogic/client/document/DocumentManager.html#setMetadataCategories-java.util.Set-

Надеясь, что помогает,

0 голосов
/ 13 сентября 2018

Если вы используете API REST MarkLogic, вы можете использовать параметр category в /v1/search, чтобы получить metadata вместо содержимого.Если вы хотите смешать его с результатами поиска, лучше всего использовать преобразование REST для /v1/search с использованием параметра transform.Смотрите также:

https://docs.marklogic.com/REST/GET/v1/search

HTH!

...