개요
이 가이드에서는 Java 드라이버에서 MongoDB 백터 검색 기능을 사용하는 방법을 알아볼 수 있습니다. The Aggregates 빌더 클래스는 $Vectorearch 파이프라인 단계를 생성할 수 있는 vectorSearch() 헬퍼 메서드를 제공합니다. 이 파이프라인 단계에서는 문서에서 시맨틱 검색을 수행할 수 있습니다. 시맨틱 검색은 제공된 검색어 또는 구문과 의미가 유사하지만 반드시 동일하지는 않은 정보를 찾는 검색 유형입니다.
벡터 검색 수행
이 기능을 사용하려면 벡터 검색 인덱스를 만들고 벡터 임베딩을 인덱스해야 합니다. 프로그래밍 방식으로 벡터 검색 인덱스를 학습하는 방법에 대한 자세한 내용은 인덱스 가이드의 MongoDB 검색 및 벡터 검색 인덱스 섹션을 참조하세요. 벡터 임베딩에 대해 자세히 알아보려면 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 limit = 1; VectorSearchOptions options = exactVectorSearchOptions().filter(gte("year", 2016)); List<Bson> pipeline = asList( vectorSearch( fieldSearchPath, queryVector, indexName, 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 문서를 참조하세요.