Shi*_*are 4 marklogic marklogic-9
我们正在开发一个存储大量数据的企业应用程序。在我们的应用程序中,我们强制用户创建多个路径范围索引以加快搜索速度。
早些时候,我们利用路径范围索引来使用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())
请帮我找到这两个问题的答案。
答案并不完全直接,这意味着结果可能因数据和数量而异。
不过有几个注意事项:
哼!