Jackrabbit OAK属性指数从未使用过



我试图使用Jackrabbit属性索引,但当我有数千个节点时,似乎总是选择横向模式进行查询执行。

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

当我运行以下查询

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

则查询引擎处理器总是使用横向模式,而不使用我为test:myprop创建的索引。

我试图直接调试代码,我清楚地看到查询引擎试图使用我已经定义的属性索引,但不使用它,因为横向游标索引的成本似乎总是"100",我的属性索引包含近"3000"节点为每个可能的值。查询引擎认为使用横向游标会更有效率,即使引擎需要横向10000个节点。

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

假设您正在使用Oak 1.3。X时,您必须在创建存储库时初始化索引。请参考我对这个问题的回答。

发布后,您将不得不手动创建索引,以便Oak对它们进行索引并在查询中使用。

最新更新