工作我想用MarkLogic的Java客戶端API來運行下面的查詢,但似乎無法找到正確的道路。 查詢如下:與MarkLogic Java客戶端API
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
declare variable $searchQuery as xs:string external ;
declare variable $aggregateFunc as xs:string external ;
let $searchQuery := 'ticker:CSGN.VX AND (dateRange GE "2015-08-07" AND dateRange LE "2015-08-21")'
let $query :=
search:parse($searchQuery,
<options xmlns="http://marklogic.com/appservices/search">
<constraint name="dateRange">
<range type="xs:date" facet="false">
<element ns="" name="date"/>
</range>
</constraint>
<constraint name="ticker">
<range type="xs:string" >
<element ns="" name="ticker"/>
</range>
</constraint>
</options>,
"search:query"
)
let $r :=
search:values(
'closingPrice',
<options xmlns="http://marklogic.com/appservices/search">
<values name="closingPrice">
<range type="xs:double">
<element ns="" name="closingPrice"/>
</range>
<aggregate apply="avg"/>
</values>
</options>,
$query
)
return <result>{$r}</result>
我一直在使用MarkLogic XCC執行下面的查詢,但需要知道如何實現相同的使用客戶端API。
按照討論中,我形成了以下的查詢但它仍然不返回任何結果,讓我知道,如果事情是錯的。
QueryManager queryMgr = client.newQueryManager();
ServerConfigurationManager configManager = client.newServerConfigManager();
configManager.newNamespacesManager();
QueryOptionsManager optionsMgr = configManager.newQueryOptionsManager();
optionsMgr.writeOptions(VALUE_OPTION, new StringHandle(VALUE_OPTIONS));
StringQueryDefinition qd = queryMgr.newStringDefinition(VALUE_OPTION);
qd.setCriteria("ticker:CSGN.VX AND (dateRange GE \"2015-08-07\" AND dateRange LE \"2015-08-21\")");
ValuesDefinition vdef =
queryMgr.newValuesDefinition("closingPrice", VALUE_OPTION);
vdef.setQueryDefinition(qd);
vdef.setAggregate("avg");
ValuesHandle results = queryMgr.values(vdef, new ValuesHandle());
StringHandle strResults=queryMgr.values(vdef, new StringHandle());
當值選項包括:
<options xmlns="http://marklogic.com/appservices/search">
<constraint name="dateRange">
<range type="xs:date" facet="false">
<element ns="" name="date"/>
</range>
</constraint>
<constraint name="ticker">
<range type="xs:string" >
<element ns="" name="ticker"/>
</range>
</constraint>
<values name="closingPrice">
<range type="xs:double">
<element ns="" name="closingPrice"/>
</range>
</values>
</options>
爲了澄清,我是不是就在猜你指的是Java客戶端API? (我假設是這樣的,因爲你從XCC開始,但請確認。) –
是的@DaveCassel我正在嘗試Java客戶端API。 –