我正在嵌入Java中的NEO4J中工作。 假設有一個名爲NODE_abc的節點,它有幾個屬性。 我想選擇節點,以便我可以使用getProperty()獲取屬性。在Java的NEO4J中按名稱選擇節點
我想選擇NODE_abc作爲myNode,這樣我就可以使用mynode.getProperty()來獲取節點「NODE_abc」的屬性。
節點的名稱「NODE_abc」被存儲在一個變量, 說字符串str =「NODE_abc」
我正在嵌入Java中的NEO4J中工作。 假設有一個名爲NODE_abc的節點,它有幾個屬性。 我想選擇節點,以便我可以使用getProperty()獲取屬性。在Java的NEO4J中按名稱選擇節點
我想選擇NODE_abc作爲myNode,這樣我就可以使用mynode.getProperty()來獲取節點「NODE_abc」的屬性。
節點的名稱「NODE_abc」被存儲在一個變量, 說字符串str =「NODE_abc」
我同意關於索引和執行密碼查詢的tstorms。然而,我會指出節點標識符是短暫的。它們在有限的時間窗口內有用,但隨後會被回收。因此,一個節點不一定會在多次執行時擁有相同的標識符(或者一旦垃圾收集器已經運行)。
一般來說,在Neo4J中,如果您需要通過屬性(而不是通過遍歷)來查詢節點,則可以創建一個索引。例如,您可以創建一個名爲「actors」的索引:
IndexManager index = graphDb.index();
Index<Node> actors = index.forNodes("actors");
如果索引不存在,該命令將創建它。否則,它返回現有的索引。
然而,不同於SQL,在Neo4j的您必須手動將節點添加到索引:
Node reeves = graphDb.createNode();
reeves.setProperty("name", "Keanu Reeves");
actors.add(reeves, "name", reeves.getProperty("name"));
然後,您可以查詢索引匹配指定查詢所有節點(指數不保證唯一性):
IndexHits<Node> hits = actors.get("name", "Keanu Reeves");
Node reeves = hits.getSingle();
來源:http://docs.neo4j.org/chunked/milestone/indexing-create.html
注意的Neo4j指數不實際讀取道具從節點來的erties,你必須明確地告訴它如何索引節點。你可以提供一個任意的信息,在這個信息上沒有存儲在節點上,但我不會推薦它。
不知道你的意思是用一個名爲「node_abc」節點是什麼。節點沒有名稱,但是可以通過node.getId()獲得唯一的id(=標識符)。所以我的猜測是你有一個名稱屬性的節點。如果您在名稱屬性上有索引,則可以通過索引(indexing search)檢索它。如果您有該節點的標識符,則還可以通過CYPHER查詢(executing cypher queries)檢索它。
感謝暴風雨爲您的答案, 節點的名稱我的意思是,當我創建節點時,我創建它像這樣。 節點A; A = graphDB.createNode(); 在這裏,我打電話給「A」節點的名稱。 – Sourav048 2013-03-13 02:51:50
您可以輕鬆創建自動索引索引,如下所述:http://docs.neo4j.org/chunked/milestone/auto-indexing.html您只需實例化自動索引器,然後定義要自動添加的屬性 – bendaizer 2013-03-13 13:29:29
謝謝,所以最後我知道的是,不是命名節點,而是設置一個屬性,如「Name:NODE_abc」,然後查詢它。 – Sourav048 2013-03-15 15:53:12