개요
In this guide, you can learn how to use the MongoDB Vector Search feature in the Kotlin driver. The Aggregates builders class provides the the vectorSearch() helper method that you can use to create a $vectorSearch pipeline stage. This pipeline stage allows you to perform a semantic search on your documents. A semantic search is a type of search which locates information that is similar in meaning, but not necessarily identical, to your provided search term or phrase.
벡터 검색 수행
이 기능 사용하려면 벡터 검색 인덱스 만들고 벡터 임베딩을 인덱스 해야 합니다. 프로그래밍 방식으로 벡터 검색 인덱스 만드는 방법에 대해 학습하려면 인덱스 가이드의 MongoDB Search 및 MongoDB Vector 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), BinaryVector.floatVector(floatArrayOf(0.0001f, 1.12345f, 2.23456f, 3.34567f, 4.45678f)), "mflix_movies_embedding_index", 1.toLong(), exactVectorSearchOptions().filter(Filters.gte(MovieAlt::year.name, 2016)) )
팁
쿼리 벡터 유형
앞의 예시 에서는 쿼리 벡터로 제공 BinaryVector 인스턴스 만들지만 Double 인스턴스의 List 을 만들 수도 있습니다. 그러나 저장 효율성 높이려면 BinaryVector 유형을 사용하는 것이 좋습니다.
팁
코틀린 (Kotlin) 벡터 검색 예시
Atlas 설명서 를 참조하여 Kotlin 드라이버를 사용하여 MongoDB Vector Search를 수행하는 방법에 대한 더 많은 튜토리얼을 찾으세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.