개요
이 가이드 에서는 코틀린 (Kotlin) 운전자 의 Atlas Vector Search 기능 사용하는 Aggregates vectorSearch() 방법을 학습 수 있습니다. 빌더 클래스는 $vectorSearch 파이프라인 단계를 만드는 데 사용할 수 있는 헬퍼 메서드를 제공합니다. 이 파이프라인 단계에서는 문서에서 시맨틱 검색 수행할 수 있습니다. 시맨틱 검색 제공된 검색 또는 구문 텀 의미는 비슷하지만 반드시 동일하지는 않은 정보를 찾는 검색 유형입니다.
벡터 검색 수행
이 기능 사용하려면 벡터 검색 인덱스 만들고 벡터 임베딩을 인덱스 해야 합니다. 프로그래밍 방식으로 벡터 검색 인덱스 만드는 방법에 대해 학습 인덱스 가이드 의Atlas Search 인덱스 섹션을 참조하세요. 벡터 임베딩에 대해 자세히 학습 Atlas 설명서에서 벡터 검색을 위한 벡터 임베딩을 인덱스하는 방법을 참조하세요.
벡터 임베딩에 벡터 검색 인덱스 생성한 후 다음 섹션에 표시된 대로 파이프라인 단계에서 이 인덱스 참조할 수 있습니다.
벡터 검색 예제
이 섹션의 예제에서는 다음 Kotlin 데이터 클래스로 모델링된 데이터를 사용합니다.
data class MovieAlt( val title: String, val year: Int, val plot: String, val plotEmbedding: List<Double> )
이 예시 에서는 vectorSearch() 메서드를 사용하여 다음 사양으로 정확한 벡터 검색 을 수행하는 집계 파이프라인 을 빌드 하는 방법을 보여 줍니다.
문자열 값의 벡터 임베딩을 사용하여
plotEmbedding필드 값을 검색합니다.mflix_movies_embedding_index벡터 검색 인덱스 사용문서 1개 반환
year값이2016이상인 문서를 필터링합니다.
Aggregates.vectorSearch( SearchPath.fieldPath(MovieAlt::plotEmbedding.name), listOf(-0.0072121937, -0.030757688, -0.012945653), "mflix_movies_embedding_index", 2.toLong(), 1.toLong(), vectorSearchOptions().filter(Filters.gte(MovieAlt::year.name, 2016)) )
팁
쿼리 벡터 유형
앞의 예시 에서는 쿼리 벡터로 제공 BinaryVector 인스턴스 만들지만 Double 인스턴스의 List 을 만들 수도 있습니다. 그러나 저장 효율성 높이려면 BinaryVector 유형을 사용하는 것이 좋습니다.
팁
코틀린 (Kotlin) 벡터 검색 예시
코틀린 (Kotlin) 운전자 사용하여 Atlas 벡터 검색을 수행하는 방법에 대한 더 많은 튜토리얼을 찾으려면 Atlas 설명서를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.