Weaviate 교차 참조
Weaviate 교차 참조 (Cross References)
Weaviate에서 교차 참조(cross reference)는 한 오브젝트가 다른 오브젝트를 가리키는 관계를 표현하는 기능이에요. 두 컬렉션 사이의 관계를 그래프처럼 연결해서, "이 영화의 감독은 누구인가" 같은 질문을 벡터 검색과 함께 풀 수 있게 해 줘요.
레퍼런스 프로퍼티 만들기
컬렉션에서 특정 프로퍼티를 cross refs 타입으로 정의해요. 이렇게 하면 그 프로퍼티가 다른 컬렉션의 오브젝트를 가리킬 수 있어요.
클라이언트 API(예: Python)에서는 컬렉션 정의 시 해당 프로퍼티의 dataType에 대상 컬렉션 이름을 지정해요. 예를 들어 Movie 컬렉션의 director 프로퍼티가 Person 컬렉션을 가리키게 할 수 있어요.
오브젝트 연결하기
오브젝트를 만들 때 레퍼런스 프로퍼티에 대상 오브젝트의 ID를 넣어 연결해요. 저장된 레퍼런스는 나중에 그대로 조회하거나, 그래프 탐색(예: "감독의 영화 목록")에 사용할 수 있어요.
그래프 검색
Weaviate는 레퍼런스를 따라 여러 홉(h1, h2, ...)으로 탐색하는 그래프 검색을 지원해요. 이 기능으로 벡터 유사도 검색과 관계 탐색을 함께 할 수 있어요. 예를 들어 특정 감독이 만든 모든 영화, 그 영화들의 장르를 한 번에 조회할 수 있죠.
레퍼런스는 Weaviate가 RAG(검색 증강 생성) 파이프라인에서 관련 오브젝트를 묶어 맥락으로 쓰는 기반이 되기도 해요.