이 버전의 문서는 보관되어 더 이상 지원되지 않습니다. Java 운전자 버전을 업그레이드 방법을 학습최신 문서를 참조하세요.
개요
이 가이드에서는 Java 드라이버에서 Atlas Vector Search 기능을 사용하는 방법을 알아볼 수 있습니다. The Aggregates 빌더 클래스는 $VectorSearch 파이프라인 단계를 생성할 수 있는 vectorSearch() 헬퍼 메서드를 제공합니다. 이 파이프라인 단계에서는 문서에서 시맨틱 검색을 수행할 수 있습니다. 시맨틱 검색은 제공된 검색어 또는 구문과 의미가 유사하지만 반드시 동일하지는 않은 정보를 찾는 검색 유형입니다.
벡터 검색 수행
이 기능을 사용하려면 벡터 검색 인덱스를 만들고 벡터 임베딩을 인덱스해야 합니다. 프로그래밍 방식으로 벡터 검색 인덱스를 만드는 방법을 알아보려면 인덱스 가이드의 Atlas Search 인덱스 섹션을 참조하세요. 벡터 임베딩에 대해 자세히 알아보려면 Atlas 문서의 벡터 검색을 위해 벡터 임베딩을 인덱스하는 방법을 참조하세요.
벡터 임베딩에 벡터 검색 인덱스 생성한 후 다음 섹션에 표시된 대로 파이프라인 단계에서 이 인덱스 참조할 수 있습니다.
벡터 검색 예제
다음 예에서는 vectorSearch() 및 project() 메서드를 사용하여 벡터 검색 점수를 계산하는 집계 파이프라인을 구축하는 방법을 보여줍니다.
List<Double> queryVector = (asList(-0.0072121937, -0.030757688, -0.012945653)); String indexName = "mflix_movies_embedding_index"; FieldSearchPath fieldSearchPath = fieldPath("plot_embedding"); int numCandidates = 2; int limit = 1; VectorSearchOptions options = vectorSearchOptions().filter(gte("year", 2016)); List<Bson> pipeline = asList( vectorSearch( fieldSearchPath, queryVector, indexName, numCandidates, limit, options), project( metaVectorSearchScore("vectorSearchScore")));
다음 예시 집계 실행 하고 이전 집계 파이프라인 의 결과에서 벡터 검색 메타 점수를 출력하는 방법을 보여 줍니다.
Document found = collection.aggregate(pipeline).first(); double score = found.getDouble("vectorSearchScore").doubleValue(); System.out.println("vectorSearch score: " + score);
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.