我有以下有效的查询,但速度很慢,因为我猜它必须查看每个文档而不是使用索引:
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:element-word-query 并打开标点符号敏感选项,但我相信由于空间限制,我们没有在数据库中索引它,所以它不起作用。
希望有任何关于如何加快或改进它的建议。如果添加索引是我唯一的办法,我想我可以回到我们的管理员那里看看有什么可能,但希望我不必走那条路。