Indexing 在X-Hive/Documentum xDB中,什么索引可以加速我的XQuery?

Indexing 在X-Hive/Documentum xDB中,什么索引可以加速我的XQuery?,indexing,performance,xquery,Indexing,Performance,Xquery,我的测试数据库中有大约2500个文档,搜索xpath/path/to/@属性大约需要2.4秒。执行不同的值(/path/to/@attribute)需要3.0秒 通过在/path/to[@attribute]上添加路径值索引,我可以将/path/to[@attribute]上的查询速度提高数百或几十毫秒,但我想不出有什么索引可以用于更一般的查询 有人知道我应该使用什么索引吗?您建议的索引是正确的(/path/to[@attribute]),但不幸的是,xDB优化器目前无法识别这种特定情况,因为存

我的测试数据库中有大约2500个文档,搜索xpath
/path/to/@属性大约需要2.4秒。执行不同的值(/path/to/@attribute)
需要3.0秒

通过在
/path/to[@attribute]
上添加路径值索引,我可以将
/path/to[@attribute]
上的查询速度提高数百或几十毫秒,但我想不出有什么索引可以用于更一般的查询


有人知道我应该使用什么索引吗?

您建议的索引是正确的(/path/to[@attribute]),但不幸的是,xDB优化器目前无法识别这种特定情况,因为存储在索引中的“目标节点”始终是元素而不是属性。如果/path/to/@attribute的结果很少,那么您可以通过稍微修改以下查询来优化:不同的值(/path/to[@attribute]/@attribute)。通过这个查询,优化器可以识别出有一个索引可以用来访问“to”元素,但是它仍然可以访问目标文档来检索@attribute步骤的属性。这正是为什么它只会在点击次数很少的情况下受益:每次点击都可能访问不同的数据页

您还可以通过API直接访问索引中的键:XhiveIndexIf.getKeys()。这将非常快,但显然这不是非常用户友好的(应该由优化器来完成)


显然,优化器可以处理这个问题。我将把它添加到bug跟踪器中

似乎很奇怪,这个问题没有得到回答。
不同的值
通常不是很优化,因此您需要某种方法直接访问该索引中的值,这是特定于实现的。您使用的是什么XQuery处理器?