我们正在开发一个存储大量数据的企业应用程序。在我们的应用程序中,我们强迫用户创建多个路径范围索引,以加快搜索速度。
早些时候,我们利用路径范围索引来使用cts:path-range-query()加快搜索速度,但是现在我发现使用cts:element-query()可以得到相同的结果,而无需创建路径范围索引。
例如 -
使用cts:path-range-query() ->在这里,我需要为/ tXML / Message / INVENTORY / ASNId创建路径范围索引
xquery version "1.0-ml";
cts:uris('', (), cts:and-query((cts:collection-query("integration"),
cts:path-range-query("/tXML/Message/INVENTORY/ASNId", "=", "10121600"))))
使用cts:element-query() ->在这里,我不需要创建路径范围索引。
xquery version "1.0-ml";
cts:uris('', (), cts:and-query((cts:collection-query("integration"),
cts:element-query(xs:QName("tXML"),cts:element-query(xs:QName("Message"), cts:element-query(xs:QName("INVENTORY"), cts:element-value-query(xs:QName("ASNId"), "10121600")))))))
我的问题是
如果使用cts:element-query()获得与cts:path-range-query()相同的结果,那么为什么我需要强制用户创建路径范围索引?
哪个查询适合大量数据?(cts:element-query()或cts:path-range-query())
请帮助我找到这两个问题的答案。
答案并不完全简单,这意味着结果可能会因数据和数量而异。
不过有几点注意事项:
HTH!