我有以下查詢這樣的作品,但速度很慢,因爲我猜它的每一個文檔中尋找,而不是利用索引的:MarkLogic特定的方式(或更快的方式)做位置查詢?
xquery version "1.0-ml";
declare namespace appl="http://ap.org/schemas/03/2005/appl";
declare namespace appls="http://ap.org/schemas/09/2011/applsearch";
let $p := cts:and-query((
cts:element-range- query(xs:QName("appls:ArrivalDateTime"),">=",fn:dateTime(xs:date("2003-01-01"), xs:time("00:00:00"))),
cts:element-range-query(xs:QName("appls:ArrivalDateTime"),"<=",fn:dateTime(xs:date("2003-01-31"), xs:time("23:59:59"))),
cts:element-value-query(xs:QName("appl:MediaType"), "text")
))
let $results := cts:search(fn:doc(), $p, "unfiltered")
return
for $result in $results
where cts:contains($result//appl:block/appl:p[position()=last()], "information from:")
return fn:document-uri($result)
我嘗試使用CTS:元素字 - 開啓了標點符號敏感選項,但我相信由於空間限制,我們沒有在數據庫中編制索引,所以它不起作用。
會愛我如何可能會加快這或改進任何建議。如果添加索引是我唯一的追求,我想我可以回到我們的管理員,看看有什麼可能,但希望我不必走這條路。
謝謝,我會給這個鏡頭。 – zrdunlap 2012-08-07 14:42:23
你對「未過濾」是正確的,事實證明這阻止了查詢的真正運行。謝謝您的幫助。 – zrdunlap 2012-08-07 20:40:03