Как динамически получить значение с помощью cts: seach в Marklogic? - PullRequest
0 голосов
/ 12 ноября 2018

Моя база данных имеет «n» количество документов, и мне нужно искать документ динамически, используя элементы и значения, которые я предоставляю.Я объясняю это ниже -

Образцы документов в моей базе данных -

document1-
<root>
    <id1>12345</id1>
    <value>Country</value>
    <node1>somevalue</node1>
    <node2>somevalue</node2>
    <node3>somevalue</node3>
    <node4>somevalue</node4>
    .......................
</root>

document2-
<root>
    <id2>34567</id2>
    <value>Fruits</value>
    <node1>somevalue</node1>
    <node2>somevalue</node2>
    <node3>somevalue</node3>
    <node4>somevalue</node4>
    .......................
</root>

Мне нужно указать входные параметры в качестве конечной точки отдыха для выполнения моей операции, а входные данные для остального XML-документа выглядят какниже-

INPUT XML-

<root>
 <id>id1</id>
 <idvalue>12345</idvalue>

 .......................
</root>

Вывод, который мне нужен, показан в примере-

Пример- Поиск всех документов из базы данных, в которой Id = Id1 и его значение = 12345

Есть предложения?

Ответы [ 2 ]

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

XPath может извлекать входные значения для создания cts.elementValueQuery ().

Что-то похожее на следующее должно работать в SJS:

cts.search(cts.elementValueQuery(
    xs.QName(fn.string(input.xpath('/root/id'))),
    fn.string(input.xpath('/root/idvalue'))
    ))

или аналогично следующему в XQuery:

cts:search(fn:collection(), cts:element-value-query(
    xs:QName(fn:string($input/root/id)),
    fn:string($input/root/idvalue)
    ))

Для получения дополнительной информации см. http://docs.marklogic.com/cts.elementValueQuery

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

0 голосов
/ 12 ноября 2018

Вы можете изучить Query By Example (QBE) в MarkLogic.Для более подробной информации перейдите по ссылке https://docs.marklogic.com/guide/search-dev/qbe

...