Visão geral
Você pode gerenciar programaticamente seus índices de pesquisa do MongoDB Pesquisa e do MongoDB Vector Pesquisa usando o driver Kotlin sincronização.
O MongoDB Search permite realizar pesquisas de texto completo em coleções hospedadas no MongoDB Atlas. Os índices de pesquisa do MongoDB especificam o comportamento da pesquisa e quais campos indexar.
A pesquisa vetorial do MongoDB permite realizar pesquisas semânticas em incorporações vetoriais armazenadas no MongoDB Atlas. Os índices do Vector Search definem os índices para as incorporações vetoriais que você deseja consultar e os valores booleanos, de data, objectId, numéricos, de string ou UUID que você deseja usar para pré-filtro dos dados.
Você pode chamar os seguintes métodos em uma coleção para gerenciar seus índices de pesquisa MongoDB e Vector Search:
createSearchIndex()(válido somente para índices de pesquisa do MongoDB )createSearchIndexes()listSearchIndexes()updateSearchIndex()dropSearchIndex()
Observação
Os métodos de gerenciamento de índice MongoDB pesquisa e pesquisa vetorial 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 IU 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 de pesquisa MongoDB. Você não pode utilizar este método para criar um índice de pesquisa vetorial.
Você pode usar o método createSearchIndexes() para criar vários índices de pesquisa do MongoDB Pesquisa ou Vector Pesquisa. Você deve criar uma instância SearchIndexModel para cada índice e, em seguida, passar uma lista de instâncias SearchIndexModel para o método createSearchIndexes().
O seguinte exemplo de código mostra como criar um índice de pesquisa MongoDB :
val index = Document("mappings", Document("dynamic", true)) collection.createSearchIndex("mySearchIdx", index)
O exemplo de código a seguir mostra como criar índices de pesquisa MongoDB e Vector pesquisa 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 índices de pesquisa do MongoDB, consulte o guia Revisão da sintaxe do índice de pesquisa do MongoDB na documentação do Atlas.
Listar índices de pesquisa
Você pode usar o listSearchIndexes() método para retornar todos os índices de pesquisa do MongoDB 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 usar o método updateSearchIndex() para atualizar um índice de pesquisa MongoDB.
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 usar o método dropSearchIndex() para excluir um índice de pesquisa MongoDB.
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 Search, consulte a documentação dos Índices de Pesquisa do MongoDB.