개요
MongoDB Search 를 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. MongoDB 검색 인덱스는 검색 동작과 인덱스 할 필드를 지정합니다.
컬렉션 에서 다음 메서드를 호출하여 MongoDB Search 인덱스를 관리 할 수 있습니다.
createSearchIndex()createSearchIndexes()listSearchIndexes()updateSearchIndex()dropSearchIndex()
참고
MongoDB Search 검색 인덱스 관리 메서드는 비동기적으로 실행되며 성공적으로 실행되었는지 확인하기 전에 반환될 수 있습니다. 인덱스의 현재 상태를 확인하려면 listSearchIndexes() 메서드를 호출합니다.
다음 섹션에서는 코드 예시를 제공하여 이전의 각 메서드를 사용하는 방법을 보여줍니다.
검색 인덱스 만들기
createSearchIndex() 및 createSearchIndexes() 메서드를 사용하여 하나 이상의 MongoDB 검색 인덱스를 만들 수 있습니다.
이러한 메서드를 사용하여 MongoDB 벡터 검색 인덱스를 만들 수도 있습니다. MongoDB Vector Search를 사용하면 MongoDB Atlas 에 저장된 벡터 임베딩에 대해 시맨틱 검색을 수행할 수 있습니다. 이 기능에 대해 자세히 학습하려면 MongoDB 벡터 검색 개요를 참조하세요.
다음 코드 예시 MongoDB 검색 인덱스를 생성하는 방법을 보여줍니다.
val index = Document("mappings" -> Document("dynamic" -> true)) collection.createSearchIndex("<index name>", index) .subscribe((result: String) => ())
다음 코드 예시에서는 여러 인덱스를 생성하는 방법을 보여줍니다. 생성된 인덱스에 기본값 이름을 할당하는 createSearchIndex() 메서드와 달리, createSearchIndexes() 메서드를 사용할 때는 각 인덱스에 인덱스 이름을 지정해야 합니다.
val indexOne = SearchIndexModel("<first index name>", Document("mappings" -> Document("dynamic" -> true, "fields" -> Document("field1" -> Document("type" -> "string"))))) val indexTwo = SearchIndexModel("<second index name>", Document("mappings" -> Document("dynamic" -> false, "fields" -> Document("field2" -> Document("type" -> "string"))))) collection.createSearchIndexes(List(indexOne, indexTwo)) .subscribe((result: String) => ())
MongoDB Search 인덱스를 정의하는 데 사용되는 구문에 대해 자세히 학습하려면 Atlas 매뉴얼의 MongoDB Search 인덱스 구문 구문 가이드 를 참조하세요.
검색 인덱스 나열
listSearchIndexes() 메서드를 사용하여 컬렉션 의 모든 MongoDB Search 인덱스를 반환할 수 있습니다.
다음 코드 예시는 listSearchIndexes() 메서드에서 반환된 Observable을 구독하여 컬렉션의 검색 인덱스 목록을 출력하는 방법을 보여줍니다.
collection.listSearchIndexes() .subscribe((result: Document) => println(result.toJson()))
{"id": "...", "name": "<index name 1>", "type": "search", "status": "READY", "queryable": true, ... } {"id": "...", "name": "<index name 2>", "type": "search", "status": "READY", "queryable": true, ... }
검색 인덱스 업데이트
updateSearchIndex() 메서드를 사용하여 MongoDB 검색 인덱스 업데이트 할 수 있습니다.
다음 코드에서는 검색 업인덱스를데이트하는 방법을 보여줍니다.
val updateIndex = Document("mappings" -> Document("dynamic" -> false)) collection.updateSearchIndex("<index to update>", updateIndex) .subscribe((result: Unit) => ())
검색 인덱스 삭제
dropSearchIndex() 메서드를 사용하여 MongoDB Search 인덱스 삭제 수 있습니다.
경고
검색 인덱스 및 클러스터 삭제는 돌이킬 수 없습니다.
검색 인덱스 및 관련 클러스터를 삭제하는 것은 영구적인 조치입니다. MongoDB는 삭제된 검색 인덱스 또는 데이터 복구를 지원하지 않습니다. 계속하기 전에 데이터 손실을 방지하기 위해 백업 생성과 같은 적절한 조치를 취했는지 확인하십시오.
MongoDB는 삭제된 검색 인덱스 또는 데이터를 복구하도록 요청하는 것을 지원하지 않습니다. 데이터 무결성과 구성에 대한 책임은 사용자에게 있습니다.
다음 코드에서는 컬렉션에서 검색 인덱스를 삭제하는 방법을 보여줍니다.
collection.dropSearchIndex("<index name>") .subscribe((result: Unit) => ())
추가 정보
MongoDB Search에 대해 자세히 학습하려면 MongoDB Search 설명서를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.