Atlas Vector Search
Visão geral
Neste guia, você pode aprender como usar o recurso Atlas Vector Search no driver Kotlin . A Aggregates
classe de construtores do fornece o vectorSearch()
método assistente do que você pode utilizar para criar um estágio de pipeline $vectorSearch. Esse estágio do pipeline permite realizar uma pesquisa semântica em seus documentos. Uma pesquisa semântica é um tipo de pesquisa que localiza informações com significado semelhante, mas não necessariamente idênticas, ao termo ou frase de pesquisa fornecida.
Importante
Compatibilidade de recursos
Para saber quais versões do MongoDB Atlas suportam este recurso, consulte Limitações na documentação do MongoDB Atlas.
Realize uma Vector Search
Para utilizar este recurso, você deve criar um índice de pesquisa de vetor e indexar suas incorporações de vetor. Para saber mais sobre como criar programaticamente um índice de pesquisa vetorial, consulte a seção Índices do Atlas Search e Vector Search no guia Índices. Para saber mais sobre incorporações vetoriais, consulte Como indexar incorporações vetoriais para Vector Search 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.
Exemplo de Vector Search
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 stringUtiliza o índice de pesquisa vetorial
mflix_movies_embedding_index
Retorna 1 documento
Filtros para documentos nos quais o valor de
year
é de pelo menos2016
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 o Atlas Vector Search.
Documentação da API
Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo: