2015-09-22 77 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橡樹索引它們並在查詢中使用。