개발/GraphDatabase

3. 서울에서 Vertex 서방 찾기

희묭 2023. 6. 10. 23:29

Graphdatabase의 가장 높은 활용처는 경로탐색입니다.

그래프이론의 등장배경인 괴니히스베르크의 다리문제도 경로탐색 문제였었습니다.

경로라는 것은 출발지와 목적지가 있어야 될것입니다.

일반적으로 이 출발지와 목적지는 Vertex가 될것이고 그렇다면 우리는 Vertex를 찾는 방법을 먼저 익혀야 될 것 입니다.

g.V().has("name","aimyon")

가장 일반적으로 Vertex의 property를 이용하여 검색하는 예제입니다.

속성값이 아닌 다른 요소로 Vertex를 찾을 수 도 있지만 개인적인 경험으로 Vertex를 조회할때 가장 많이 사용하는 건 속성값을 이용한 조회였습니다.

물론 현업에서 사용하는 조건은 위처럼 간단하지는 않습니다.

g.V().or(__.has("age",lt(40)), __.has("level",between(1,9)))

그래서 gremlin에서는 위처럼 다양한 조건을 만족시키는 문법을 지원하고 필요한 조건을 입력하면 됩니다.

 

추가로 Graphdatebase 특성상 대량의 데이터를 조회할일이 많은데 그럴때는 이런 요소검색에대해 몇가지 조치를 해야할 부분이 있습니다.

물론 저희 회사는 Neptune을 사용하기에 최적화된 인덱싱을 자동으로 지원받는데

꼭 제품에서 지원하는 인덱싱이 아니더라도 tinkerpop과 메모리를 활용하여 얼마든지 가능합니다.

'개발 > GraphDatabase' 카테고리의 다른 글

4. Repeat 과 Emit  (0) 2023.06.12
(번외) Neptune 에서 Spring Data Neo4j 쓰는 법  (0) 2023.06.11
2. Vertex와 Edge  (0) 2023.06.10
1. Gremlin과 Cypher  (1) 2023.05.20
0. 자연스러운 데이터베이스 Graph Database  (0) 2023.05.15