2016-01-27 22 views
1

創建索引時,在等待索引啓用時收到此消息。Titan:索引verticesIndex上的某些鍵目前不具有狀態REGISTERED REGISTERED

我使用這行代碼

ManagementSystem.awaitGraphIndexStatus(graph, indexName).status(SchemaStatus.REGISTERED).call(); 

53090 [主] INFO com.thinkaurelius.titan.graphdb.database.management.GraphIndexStatusWatcher - 一些鍵(或多個)指數verticesIndex目前還沒有狀態REGISTERED:名字= ENABLED,姓氏= ENABLED,FieldPosition中= ENABLED,名字= ENABLED介紹= ENABLED,投手= ENABLED,位置= ENABLED,介質= ENABLED,源= ENABLED,類型= ENABLED,體育= ENABLED

它保持打印很多的所有指標我哈哈五個。我做錯了什麼?如何避免這種信息?

+0

如果所有的按鍵顯示'ENABLED',那麼你的指數(在這種情況下'verticesIndex')已經存在。你是從頭開始創建一個新的索引,還是修改並重新索引現有的索引? – guitarsteve

+0

我很困惑,索引的不同狀態是什麼? –

+0

我發現它也令人困惑。有'INSTALLED'這意味着它是全新的。它會自動轉換到'REGISTERED'。然後,您必須手動啓用以獲得'ENABLED'狀態。如果你想要你可以禁用現有的索引,它會變成'DISABLED'。只有處於'ENABLED'狀態的索引纔會處理查詢。 – guitarsteve

回答

3

如果所有的鍵都顯示爲ENABLED,那麼您的索引(在這種情況下爲verticesIndex)已經存在,因此等待它成爲REGISTERED沒有任何意義。

爲避免這種不必要的等待,您可以使用此代碼作爲指導。

if (index.getIndexStatus(pk).equals(SchemaStatus.INSTALLED)) 
    ManagementSystem.awaitGraphIndexStatus(graph, indexName).status(SchemaStatus.REGISTERED).call(); 

可能的索引的狀態在泰坦總結:

  • INSTALLED這意味着該索引是全新。它會自動轉換爲REGISTERED
  • REGISTERED表示所有數據庫節點都知道該索引,但尚未準備好使用。

  • ENABLED表示索引處於活動狀態。這是索引處理查詢的唯一狀態。

  • DISABLED - 如果你想擺脫索引,你可以手動禁用它來達到這個狀態。

編號:https://github.com/thinkaurelius/titan/blob/1.0.0_docs/titan-core/src/main/java/com/thinkaurelius/titan/core/schema/SchemaStatus.java

+0

我剛剛加了一個代碼示例演示如何避免它。感謝您的回答。 –

+0

你能否指點我的文檔說明我必須手動切換到'ENABLED'狀態?我找不到它。 –

+0

現在我在看我可能是錯的。我最近正在重新編制索引(http://s3.thinkaurelius.com/docs/titan/1.0.0/index-admin.html),它將「啓用」作爲一個單獨的步驟。我認爲對於一個全新的索引它會自動啓用。 – guitarsteve

相關問題