Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

MongoDB Vector Search

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.

Importante

Compatibilidade de recursos

Para saber quais versões do MongoDB Atlas suportam este recurso, consulte Limitações na documentação do MongoDB Atlas.

Para utilizar este recurso, você deve criar um índice de pesquisa vetorial e indexar suas incorporações de vetor. Para aprender sobre como criar programaticamente um índice de pesquisa vetorial, consulte a seção MongoDB Search e MongoDB Vector Search Indexes do guia Índices. Para saber mais sobre incorporações vetoriais, consulte Como indexar incorporações vetoriais para pesquisa vetorial na documentação do Atlas.

Depois de criar um índice de pesquisa vetorial nas incorporações vetoriais, você poderá fazer referência a esse índice no estágio do pipeline, conforme mostrado na seção a seguir.

O exemplo nesta seção utiliza dados modelados com a seguinte classe de dados Kotlin:

data class MovieAlt(
val title: String,
val year: Int,
val plot: String,
val plotEmbedding: List<Double>
)

Este exemplo mostra como construir um pipeline de agregação que utiliza o método vectorSearch() para executar uma pesquisa vetorial exata com as seguintes especificações:

  • pesquisar plotEmbedding valores de campo usando incorporações vetoriais de um valor de string

  • Utiliza o índice de pesquisa vetorial mflix_movies_embedding_index

  • Retorna 1 documento

  • Filtros para documentos nos quais o valor de year é de pelo menos 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))
)

Dica

Tipo de vetor de query

O exemplo anterior cria uma instância de BinaryVector para servir como o vetor de consulta, mas você também pode criar um List de Double instâncias. No entanto, recomendamos que você use o tipo BinaryVector para melhorar a eficiência do armazenamento.

Dica

Exemplos de Vector Search no Kotlin

Visite a documentação do Atlas para encontrar mais tutoriais sobre como usar o driver Kotlin para executar uma MongoDB Vector Search.

Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo: