2016-09-19 70 views
0

我正在使用OpenDJ 3.0.0發行版。OpenDJ vlv index error:#服務器端排序失敗:不願意

我有兩個基本DN,1日爲dc = tenant1,第二個是DC = tenant2,我創建了VLV指數基於DC = tenant1,但DC的LDAP搜索發生= tenant2

這裏是VLV指數,它看起來像 濾波器: (&(objectClass的= NS-nationsky鹼基受試者)(UID = )(CN =))

基DN:DC = tenant1 排序順序:UID CN mail 範圍:一級

當我嘗試使用帶有vlv控件的ldapsearch時,會出現「#服務器端排序失敗:不願意執行」,如下所示:

/ldapsearch -p 1389 -h localhost -D'cn = Directory Manager' -w '密碼' -b 'OU =人,OU =受試者,DC = tenant2' -G 0:2000:1:0 -s一個--sortorder UID 「(UID = 一個)」 CN

它一切正常,但它總是會出現「#服務器端排序失敗:不願意執行」錯誤,如果我的服務器有兩個很多條目(比如15000)

從訪問日誌中,我可以看到無索引搜索 [19/Sep/2016:23:06:38 +0800 ] SEARCH REQ參數conn = 35 OP = 1 MSGID = 2基= 「OU =人,OU =受試者,DC = tenant2」 範圍=一個過濾器= 「(UID = 一個)」 ATTRS = 「CN」 [19/Sep/2016:23:06:40 +0800]搜索RES conn = 35 op = 1 msgID = 2 result = 0 nentries = 8458 unindexed etime = 2543

任何想法如何解決它?

回答

1

實現VLV索引和查詢的真正含義瀏覽一個衆所周知的設置項(如所有用戶),而不是不同的套條目。

因此,爲了使用VLV索引,搜索請求必須在鹼,適用範圍,該過濾器和用於該索引定義的排序順序匹配(和過濾器應當是恆定的)。如果使用((objectClass = ns-nationsky-base-subject)(uid =)(cn =))定義VLV索引,則具有(uid = a)的搜索將不匹配索引,因此不能使用。

服務器端排序是非常昂貴的請求,這是爲什麼,當沒有索引,服務器將拒絕許多項(通過索引條目限制管轄)排序。雖然可以增加此限制,但這會對服務器中使用的資源數量產生非常嚴重的影響,並可能嚴重影響服務器的性能。

相關問題