2012-11-11 88 views
0

我有neo4j作爲Windows服務運行。當我重新啓動機器時,自動索引未打開。Neo4j自動索引 - 使它們永久保留在

neo4j-sh (0)$ eval db.index().getNodeAutoIndexer().isEnabled() 

返回false

我要運行

neo4j-sh (0)$ eval db.index().getNodeAutoIndexer().setEnabled(true) 

我每次啓動該服務。

我已經在我的配置文件

node_auto_indexing=true 
node_keys_indexable=EmailAddress,Identifier,PostIdentifier,UserIdentifier 

以下,這些都是我setEnabled(true)

如何配置的服務,成爲可轉位的鑰匙,所以我沒有啓用索引在每一次啓動?

+0

您是否試圖實際索引一個實體?我認爲這些指標是懶惰創造的。 –

+0

謝謝@PeterNeubauer你能詳細說明你的意思嗎?我有一大堆測試在我的圖中測試了所有節點類型的創建。當nodeAutoIndexer關閉時,它們全部失敗,當它們通過時。這些測試創建節點,並通過索引查找其他節點。 –

+0

是否所有索引都是懶洋洋地創建的?非自動索引怎麼樣? –

回答

2

Per Peter Neubauer的評論指出,索引是懶惰創建的。因此,您必須創建至少一個包含至少一個可索引屬性的實體(節點或關係)。恕我直言,這可能被認爲是如何管理索引的一個錯誤。您可能希望在索引被延遲創建之前對索引發出Cypher查詢。由於索引不存在,此查詢將導致錯誤。但是你可能期望的是一個空的結果集。發生錯誤的事實實際上向調用者泄漏了一點索引實現。

事實上,我想我會在此打開一個問題;-)

+0

你能發佈一個問題的鏈接,以便我可以監控它。 –

+0

+1,請提供一個console.neo4j.org測試用例以方便娛樂:) –