Я использую интеллектуальную среду мастеринга, основанную на платформе Data Hub. Я сталкиваюсь с проблемой при выполнении смарт-мастеринга. Я получаю результат матча обратно, но он не содержит документов, которые были сопоставлены. Когда я запускаю:
import module namespace matcher = "http://marklogic.com/smart-mastering/matcher"
at "com.marklogic.smart-mastering/matcher.xqy";
matcher:find-document-matches-by-options-name(
fn:doc("/Trade/126753e6-ca73-454f-b6cd-1bdf63323ac8.json"), "da49a395-3389-4ba2-8fbb-ab2615ee618d",
fn:true(), cts:collection-query("Cash") )
в моей консоли запросов, он возвращает статистику совпадений вместе с сопоставленными документами.
<results total="1" page-length="200" start="1">
<match-query>
<cts:and-not-query xmlns:cts="http://marklogic.com/cts">
<cts:positive>
<cts:and-query>
<cts:collection-query>
<cts:uri>mdm-content</cts:uri>
</cts:collection-query>
<cts:or-query>
<cts:and-query>
<cts:json-property-value-query weight="10">
<cts:property>cshTrdNotiAmt</cts:property>
<cts:value xml:lang="en">120</cts:value>
<cts:value xsi:type="xs:double" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">120</cts:value>
<cts:option>case-insensitive</cts:option>
</cts:json-property-value-query>
<cts:json-property-value-query weight="10">
<cts:property>cshTrdAmtCrryCd</cts:property>
<cts:value xml:lang="en">GBP</cts:value>
<cts:option>case-insensitive</cts:option>
</cts:json-property-value-query>
</cts:and-query>
</cts:or-query>
</cts:and-query>
</cts:positive>
<cts:negative>
<cts:document-query>
<cts:uri>/Statement/126753e6-ca73-454f-b6cd-1bdf63323ac8.json</cts:uri>
</cts:document-query>
</cts:negative>
</cts:and-not-query>
</match-query>
<result uri="/Cash/9b627589-5fa5-481a-b498-d7cbbf2bfc83.json" index="1" score="20" threshold="R100001" action="">
<matches>
<match>fn:doc("/Cash/9b627589-5fa5-481a-b498-d7cbbf2bfc83.json")/envelope/instance/CashBook/number-node("cshTrdNotiAmt")</match>
<match>fn:doc("/Cash/9b627589-5fa5-481a-b498-d7cbbf2bfc83.json")/envelope/instance/CashBook/text("cshTrdAmtCrryCd")</match>
</matches>
</result>
</results>
Однако, делая вызов покоя через мое приложение java он не возвращает сопоставленные документы. Я вызываю пользовательский файл сопоставления, который вызывает:
let resultXML = matcher.findDocumentMatchesByOptions(doc, options,
1, pageOffset, includeMatch, cts.collectionQuery(collectionName));
Даже до синтаксического анализа до json я все равно не получаю сопоставленные документы, и для параметра includeMatch установлено значение true , Я что-то упустил?