공간 플러그인이 설치된 최신 neo4j v2를 실행 중입니다. 지리적 인덱스에서 인덱싱해야하는 거의 모든 노드를 인덱싱 할 수있었습니다. 내가 고민하고있는 문제 중 하나는 노드가 이미 인덱싱되었는지 쉽게 확인하는 방법입니다.노드가 이미 neo4j-spatial 인덱스에서 인덱싱되었는지 확인하는 방법은 무엇입니까?
이 정보를 얻기 위해 어떤 REST 엔드 포인트도 찾을 수 없으며 cypher를 사용하여 쉽게 얻을 수 없습니다. 하지만 그것은 런타임이 용납 될 수 없다는 점을 제외하고는 원하는 결과를 제공하는 것으로 보이는이 쿼리를 시도했습니다.
MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=989898 return b;
지리 지수는 관계 RTREE_REFERENCE 참조하는 노드 ID의 속성 값에 색인 된 노드에 대한 참조를 저장소로
나는이 갈 수있는 방법이 될 수있다 생각.이 쿼리는 14459 ms
neo4j-shell
에서 실행됩니다.
데이터베이스가 커서 큰 것이 아니며 41000 nodes
인데 전체 공간 인덱스에 추가하고 싶습니다.
이렇게하는 더 좋은 방법이 있어야합니다. 어떤 생각이나 포인터가 크게 감사하겠습니다.
나도 그렇게 할 수 없다.어쩌면 제 질문으로는 충분하지 않을 수도 있습니다. 이 인덱스는 neo4j-spatial 플러그인에 의해 생성 된 것이므로 색인을 생성하는 노드를 참조하는 노드에 레이블을 지정할 수 없습니다. 적어도 내가 아는 한. 전체적으로 많은 것을 샅샅이 뒤지는 것이 길은 아니라는 것을 알기 때문에 이것이 더 좋은 방법이 있는지를 묻고있는 이유입니다. –
@deemeetree가 만드는 주된 요점은 노드가 이미 인덱싱 된 경우에만 수신 RTREE_REFERENCE를 갖게된다는 것입니다. 귀하의 원래 질문에서 나는 당신이 노드와 함께 일하고 있다고 가정하고 그것이 색인 생성되었는지 알아야합니다. 들어오는 관계를 확인하기 전에 코드가 먼저 노드를 다시 검색하는 것 같습니다. 데미 리 제안은 그것에 대한 색인을 사용하는 것입니다. 그럴 수는 있지만 노드의 ID를 알고 있기 때문에 색인이 필요하지 않습니다. 좀 더 간단한 제안을 원하면 별도의 답변을 참조하십시오. –