Atlas Search e índices de Vector Search
Nesta página
Visão geral
Você pode gerenciar seus índices Atlas Search e Atlas Vector Search pelo código de programação usando o Kotlin Sync driver.
O Atlas Search permite realizar pesquisas de texto completo em coleções hospedadas no MongoDB Atlas. Os índices do Atlas Search especificam o comportamento da pesquisa e quais campos indexar.
O Atlas Vector Search permite que você realize pesquisas semânticas em incorporações vetoriais armazenadas no MongoDB Atlas. Os índices de pesquisa de vetores definem os índices para as incorporações vetoriais nas quais você deseja fazer query e os valores booleanos, de data, objectId, numéricos, de string ou UUID que você deseja usar para pré-filtrar seus dados.
Você pode chamar os seguintes métodos em uma coleção para gerenciar seus índices Atlas Search e Vector Search :
createSearchIndex()
(válido somente para índices do Atlas Search )createSearchIndexes()
listSearchIndexes()
updateSearchIndex()
dropSearchIndex()
Observação
Os métodos de gerenciamento de índice Atlas Search e Vector Search são executados de forma assíncrona e podem retornar antes de confirmar que foram executados com sucesso. Para determinar o status atual dos índices, chame o método listSearchIndexes()
ou visualize a lista de índices na interface do usuário do Atlas.
As seções a seguir fornecem exemplos de código que demonstram como usar cada um dos métodos anteriores.
Criar um índice de pesquisa
Você pode usar o método createSearchIndex() para criar um único índice do Atlas Search. Você não pode usar este método para criar um índice de Pesquisa Vetorial.
Você pode utilizar o método createSearchIndexes() para criar múltiplos índices do Atlas Search ou Vector Search . Você deve criar uma instância SearchIndexModel para cada índice e, em seguida, passar uma lista de SearchIndexModel
instâncias para o createSearchIndexes()
método.
O seguinte exemplo de código mostra como criar um índice Atlas Search:
val index = Document("mappings", Document("dynamic", true)) collection.createSearchIndex("mySearchIdx", index)
O exemplo de código a seguir mostra como criar índices Atlas Search e Vector Search em uma chamada:
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) )
Para saber mais sobre a sintaxe usada para definir os índices do Atlas Search, consulte o guia Revisar o índice de pesquisa do Atlas Search na documentação do Atlas.
Listar índices de pesquisa
Você pode usar o método listSearchIndexes() para retornar todos os índices de Atlas Search em uma coleção.
O exemplo de código a seguir mostra como imprimir uma lista dos índices de pesquisa de uma coleção:
val results = collection.listSearchIndexes() results.forEach { result -> println(result) }
Atualizar um Índice de Pesquisa
Você pode utilizar o método updateSearchIndex() para atualizar um índice do Atlas Search.
O seguinte código mostra como atualizar um índice de pesquisa:
val newIndex = Document("mappings", Document("dynamic", true)) collection.updateSearchIndex("<index to update>", newIndex)
Excluir um índice de pesquisa
Você pode utilizar o método dropSearchIndex() para excluir um índice do Atlas Search.
O seguinte código mostra como excluir um índice de pesquisa de uma coleção:
collection.dropIndex("<index to delete>")
Informações adicionais
Para saber mais sobre o MongoDB Atlas Search, consulte a documentação dos índices do Atlas Search.