Почему несколько параметров URL-адреса коллекции в поисковом запросе REST не возвращают результатов?

Согласно документам MarkLogic, параметр «коллекция» может появляться несколько раз в запросе GET к клиентскому API REST; однако следующее возвращает 0 результатов:

/LATEST/search?q=&collection=GEWN&collection=TSJN

тогда как XQuery, указывающий обе коллекции в одной и той же базе данных, возвращает ожидаемые результаты:

count(collection(("GEWN","TSJN")))

=> 90871

Использование REST API для индивидуального запроса одной именованной коллекции также возвращает ожидаемые результаты.

Спасибо.


person s3-4v    schedule 29.09.2015    source источник


Ответы (1)


Коллекции, предоставляемые параметром URI, связаны по И. Эквивалентом, предоставленным в виде запроса, будет:

<search:query>
<search:and-query>
    <search:collection-query>
        <search:uri>GEWN</search:uri>
    </search:collection-query>
    <search:collection-query>
        <search:uri>TSJN</search:uri>
    </search:collection-query>
</search:and-query>
</search:query>

Когда несколько коллекций передаются одному вызову fn:collection() или cts:collection-query(), коллекции связаны ИЛИ. Чтобы получить эквивалент, введите следующий запрос:

<search:query>
<search:collection-query>
    <search:uri>GEWN</search:uri>
    <search:uri>TSJN</search:uri>
</search:collection-query>
</search:query>

Вот ссылка на запрос коллекции в JSON:

http://docs.marklogic.com/guide/search-dev/structured-query#id_76890

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

person ehennum    schedule 29.09.2015
comment
Спасибо, это похоже на интерфейс /v1/qbe, но я хотел бы добиться этого с помощью /v1/search и параметра collection*: docs.marklogic.com/REST/GET/v1/search - person s3-4v; 01.10.2015
comment
Приведенный выше структурированный запрос работает с конечной точкой /v1/search. (Это не QBE.) Вы можете отправить структурированный запрос как полезную нагрузку (с текстом запроса или без него для синтаксического анализа) или передать структурированный запрос с помощью GET в качестве параметра URL-адреса структурированного запроса. - person ehennum; 01.10.2015
comment
Отлично, спасибо. У меня есть ощущение, что я буду использовать структурированные запросы, часто продвигаясь вперед. - person s3-4v; 03.10.2015