programing

neo4j의 노드 식별자

goodcopy 2021. 1. 15. 19:18
반응형

neo4j의 노드 식별자


저는 Neo4j를 처음 사용합니다. 어제 저녁에 게임을 시작했습니다.

모든 노드가 노드 생성 중에 생성되는 자동 증가 정수로 식별되는 것을 확인했습니다. 항상 그렇습니까?

내 데이터 세트에는 자연 문자열 키가 있으므로 Neo4j 할당 ID와 내 ID 사이에 매핑 할 필요가 없습니다. 대신 문자열 식별자를 사용할 수 있습니까?


node-id를 구현 세부 사항으로 생각하십시오 (관계형 데이터베이스의 rowid와 같이 노드를 식별하는 데 사용할 수 있지만 절대 재사용되지 않아야 함).

자연 키를 노드에 속성으로 추가 한 다음 자연 키로 노드를 인덱싱하거나 자동 인덱싱을 활성화합니다.

예 : Java API에서 :

Index<Node> idIndex = db.index().forNodes("identifiers");

Node n = db.createNode();
n.setProperty("id", "my-natural-key");
idIndex.add(n, "id",n.getProperty("id"));

// later
Node n = idIndex.get("id","my-natural-key").getSingle(); // node or null

자동 인덱서를 사용하면 "id"필드에 대해 자동 인덱싱을 활성화 할 수 있습니다.

// via configuration 
GraphDatabaseService db = new EmbeddedGraphDatabase("path/to/db",
 MapUtils.stringMap( 
    Config.NODE_KEYS_INDEXABLE, "id", Config.NODE_AUTO_INDEXING, "true" ));

// programmatic (not persistent)
db.index().getNodeAutoIndexer().startAutoIndexingProperty( "id" );

// Nodes with property "id" will be automatically indexed at tx-commit
Node n = db.createNode();
n.setProperty("id", "my-natural-key");

// Usage
ReadableIndex<Node> autoIndex = db.index().getNodeAutoIndexer().getAutoIndex();
Node n = autoIndex.get("id","my-natural-key").getSingle();

참조 : http://docs.neo4j.org/chunked/milestone/auto-indexing.html 및 : http://docs.neo4j.org/chunked/milestone/indexing.html


이것은 도움이 될 것입니다 :

배치 가져 오기 중 자동 인덱싱을 백업 할 인덱스 생성 neo4j.properties에서 자동 인덱싱이 활성화 된 경우 생성되는 각 노드가 node_auto_index라는 인덱스에 추가된다는 것을 알고 있습니다. 자, 여기에 멋진 부분이 있습니다. 원래 수동 인덱스 (일괄 가져 오기시)를 추가하고 이름을 node_auto_index로 지정하고 neo4j에서 자동 인덱싱을 활성화하면 일괄 삽입 된 노드가 자동 인덱싱 된 것처럼 나타납니다. 그리고 거기에서 노드를 만들 때마다 노드도 인덱싱됩니다. **

출처 : 사용자 정의 키로 노드 식별


Neo 문서에 따르면 http://neo4j.com/docs/stable/query-schema-index.html 에는 자동 색인이 있어야 하지만 여전히 많은 제한이 있습니다.


모든 답변 외에도 neo4j는 더 빠르게 작동하고 더 나은 서비스를 제공하기 위해 자체 ID를 만듭니다. 내부 시스템이 ID간에 ​​충돌하지 않는지 확인하십시오. 그러면 동일한 속성을 가진 노드가 생성되고 시스템에 빈 노드로 표시됩니다.


생성 된 ID는 기본값이며 사용자가 수정할 수 없습니다. 사용자는 해당 노드의 속성으로 문자열 식별자를 사용할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/9051442/node-identifiers-in-neo4j

반응형