개요
코틀린 동기 (Kotlin Sync) 운전자 사용하여MongoDB Search 및 MongoDB Vector Search 인덱스를 프로그래밍 방식으로 관리 할 수 있습니다.
MongoDB Search를 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. MongoDB Search 인덱스는 검색 동작과 인덱스 할 필드를 지정합니다.
MongoDB Vector Search를 사용하면 MongoDB Atlas 에 저장된 벡터 임베딩에 대해 시맨틱 검색을 수행할 수 있습니다. 벡터 검색 인덱스는 쿼리 하려는 벡터 임베딩에 대한 인덱스와 데이터를 사전 필터링하는 데 사용할 부울, 날짜, objectId, 숫자, 문자열 또는 UUID 값을 정의합니다.
컬렉션 에서 다음 메서드를 호출하여 MongoDB Search 및 Vector Search 인덱스를 관리 .
createSearchIndex()( MongoDB Search 인덱스에만 유효)createSearchIndexes()listSearchIndexes()updateSearchIndex()dropSearchIndex()
참고
MongoDB Search 및 Vector Search 인덱스 관리 메서드는 비동기적으로 실행 성공적으로 실행되었는지 확인하기 전에 반환될 수 있습니다. 인덱스의 현재 상태를 확인하려면 메서드를 호출하거나 Atlas listSearchIndexes() UI 에서인덱스 목록을 확인합니다.
다음 섹션에서는 코드 예시를 제공하여 이전의 각 메서드를 사용하는 방법을 보여줍니다.
검색 인덱스 만들기
createSearchIndex() 메서드를 사용하여 단일 MongoDB Search 인덱스 생성할 수 있습니다. 이 메서드로는 Vector Search 인덱스 만들 수 없습니다.
createSearchIndexes() 메서드를 사용하여 여러 개의 MongoDB Search 또는 Vector Search 인덱스를 만들 수 있습니다. 각 인덱스 에 대해 SearchIndexModel 인스턴스 만든 SearchIndexModel 다음 인스턴스 목록을 createSearchIndexes() 메서드에 전달해야 합니다.
다음 코드 예시 MongoDB Search 인덱스 생성하는 방법을 보여줍니다.
val index = Document("mappings", Document("dynamic", true)) collection.createSearchIndex("mySearchIdx", index)
다음 코드 예시 한 번의 호출로 MongoDB Search 및 Vector Search 인덱스를 생성하는 방법을 보여줍니다.
val searchIdxMdl = SearchIndexModel( "searchIdx", Document("analyzer", "lucene.standard").append( "mappings", Document("dynamic", true) ), SearchIndexType.search() ) val vectorSearchIdxMdl = SearchIndexModel( "vsIdx", Document( "fields", listOf( Document("type", "vector") .append("path", "embeddings") .append("numDimensions", 1536) .append("similarity", "dotProduct") ) ), SearchIndexType.vectorSearch() ) collection.createSearchIndexes( listOf(searchIdxMdl, vectorSearchIdxMdl) )
MongoDB Search 인덱스를 정의하는 데 사용되는 구문에 대해 자세히 학습 Atlas 문서에서 Review MongoDB Search 인덱스 구문 가이드 참조하세요.
검색 인덱스 나열
listSearchIndexes() 메서드를 사용하여 컬렉션 의 모든 MongoDB Search 인덱스를 반환할 수 있습니다.
다음 코드 예시에서는 컬렉션의 검색 인덱스 목록을 출력하는 방법을 보여줍니다.
val results = collection.listSearchIndexes() results.forEach { result -> println(result) }
검색 인덱스 업데이트
updateSearchIndex() 메서드를 사용하여 MongoDB Search 인덱스 업데이트 수 있습니다.
다음 코드에서는 검색 업인덱스를데이트하는 방법을 보여줍니다.
val newIndex = Document("mappings", Document("dynamic", true)) collection.updateSearchIndex("<index to update>", newIndex)
검색 인덱스 삭제
dropSearchIndex() 메서드를 사용하여 MongoDB Search 인덱스 삭제 수 있습니다.
다음 코드에서는 컬렉션에서 검색 인덱스를 삭제하는 방법을 보여줍니다.
collection.dropIndex("<index to delete>")
추가 정보
MongoDB Search에 대해 자세히 학습 MongoDB Search 인덱스 설명서를 참조하세요.