Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de Kotlin Sync

Executar uma query no Atlas Vector Search

Neste guia, você pode aprender como usar o driver Kotlin Sync para executar queries do Atlas Vector Search . A Aggregates classe de construtores fornece o vectorSearch() método assistente, que você pode usar para criar um estágio de pipeline $vectorSearch.

Importante

Compatibilidade de recursos

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

Antes de executar queries do Atlas Vector Search , você deve criar um índice do Atlas Vector Search em sua collection. Para saber como criar programaticamente um índice de pesquisa vetorial, consulte o guia do Atlas Search e dos índices de Vector Search .

Em seguida, você pode executar uma query do Atlas Vector Search usando o método vectorSearch() em um pipeline de agregação . Este método aceita os seguintes parâmetros:

  • path: O campo a ser pesquisado

  • queryVector: A incorporação do vetor que representa sua query de pesquisa

  • indexName: O nome do índice do Atlas Vector Search para usar

  • limit: o número máximo de resultados a serem retornados

  • options: (Opcional) Um conjunto de opções que você pode usar para configurar a query de pesquisa vetorial

Este exemplo executa uma query do Atlas Vector Search que executa as seguintes ações:

  • Executa query do campo vetorial plot_embedding.

  • Limita os resultados a 5 documentos.

  • Especifica uma pesquisa vetorial do vizinho mais próximo (ANN) que considera 150 candidatos. Para saber mais sobre pesquisas de ANN, consulte Pesquisa de ANN na documentação do MongoDB Atlas .

val vectorValues = FloatArray(1536) { i -> (i % 10).toFloat() * 0.1f }
val queryVector = BinaryVector.floatVector(vectorValues)
val indexName = "<vector search index>"
// Specifies the path of the field to search
val fieldSearchPath: FieldSearchPath = fieldPath("plot_embedding")
// Creates the vector search pipeline stage with a limit and numCandidates
val pipeline: List<Bson> = listOf(
vectorSearch(
fieldSearchPath,
queryVector,
indexName,
5L,
approximateVectorSearchOptions(150)
),
project(
Projections.fields(
Projections.excludeId(),
Projections.include("title")
)
)
)
val results = collection.aggregate(pipeline)
results.forEach { doc ->
println(doc.toJson())
}
{"title": "Berserk: The Golden Age Arc I - The Egg of the King"}
{"title": "Rollerball"}
{"title": "After Life"}
{"title": "What Women Want"}
{"title": "Truth About Demons"}

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.

O exemplo a seguir mostra como executar a mesma query de pesquisa vetorial do exemplo anterior e imprimir a meta-pontuação da pesquisa vetorial dos documentos. Essa pontuação representa a relevância de cada documento para o vetor de query:

val pipeline: List<Bson> = listOf(
vectorSearch(
fieldSearchPath,
queryVector,
indexName,
5L,
approximateVectorSearchOptions(150)
),
project(
Projections.fields(
Projections.excludeId(),
Projections.include("title"),
Projections.metaVectorSearchScore("score")
)
)
)
val results = collection.aggregate(pipeline)
results.forEach { doc ->
println("Title: ${doc.getString("title")}, Score: ${doc.getDouble("score")}")
}
Title: Berserk: The Golden Age Arc I - The Egg of the King, Score: 0.49899211525917053
Title: Rollerball, Score: 0.4976102113723755
Title: After Life, Score: 0.4965665936470032
Title: What Women Want, Score: 0.49622756242752075
Title: Truth About Demons, Score: 0.49614521861076355

Dica

Tutoriais de Vector Search

Para visualizar mais tutoriais que mostram como executar queries do Atlas Vector Search , consulte os Tutoriais do Atlas Vector Search na documentação do MongoDB Atlas .

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

Voltar

Atlas Search

Nesta página