2015-09-22 44 views
0

我想使用属性索引与Jackrabbit,但是当我有成千上万的节点时,似乎始终选择横向模式执行查询。Jackrabbit OAK属性索引从未使用

例如,我有单个节点/mystore下的test:mytype类型的10000个节点。在这些节点中,我有一个属性test:myprop,有3个不同的可能值(每个值有近3000个节点)。

当我运行下面的查询

select [jcr:uuid] from [test:mytype] where [test:myprop]='MyValue' 

然后查询引擎处理器始终使用横移模式,不使用我为test:myprop创建的索引。

我试图直接调试代码,我清楚地看到查询引擎试图使用我定义的属性索引但不使用它,因为横切游标索引的代价似乎总是“100”,而且我的属性索引包含每个可能值几乎为“3000”节点。查询引擎认为使用横向游标会更高效,即使引擎需要横跨10000个节点。

有人已经遇到过类似的问题吗?

问候

回答

0

假设你正在使用橡木1.3.x中,你将不得不同时库创建库初始化索引。请参考我在query上的回答。

发布这个,你将不得不手动创建indexes橡树索引它们并在查询中使用。