Atlas Vector Search
Visão geral
Neste guia, você pode aprender como realizar pesquisas em seus documentos usando o recurso Atlas Vector Search . O Laravel MongoDB fornece uma API para realizar queries do Atlas Vector Search diretamente com seus modelos. Este guia descreve como criar índices do Atlas Vector Search e fornece exemplos de como usar a integração com o Laravel para realizar pesquisas.
Observação
Compatibilidade de implantação
Você pode usar a funcionalidade Atlas Vector Search somente quando se conectar a clusters do MongoDB Atlas . Esta funcionalidade não está disponível para implementações autogerenciadas.
Para saber mais sobre o Atlas Vector Search, consulte a visão geral do na documentação do Atlas . A API do Atlas Vector Search usa internamente o operador de agregação $vectorSearch
para executar as queries. Para saber mais sobre este operador, consulte a referência $vectorSearch na documentação do Atlas.
Observação
Talvez você não consiga usar os métodos descritos neste guia para cada tipo de query do Atlas Vector Search . Para casos de uso mais complexos, crie um pipeline de agregação usando o Construtor de agregação do.
Para realizar pesquisas avançadas de texto completo em seus documentos, você pode usar a API Laravel Atlas Search . Para saber mais sobre esse recurso, consulte o guia Atlas Search.
Crie um índice do Atlas Vector Search
Você pode criar um índice do Atlas Search das seguintes maneiras:
Chame o método
create()
na interfaceSchema
e passe o método assistentevectorSearchIndex()
com detalhes de criação de índice. Para saber mais sobre essa estratégia, consulte a seção Gerenciar índices do Atlas Search e Vector Search do guia Construtor de esquemas.Acesse uma coleção e, em seguida, chame o método
createSearchIndex()
da biblioteca PHP do MongoDB . Você deve especificar a opçãotype
como'vectorSearch'
, conforme mostrado no código a seguir:$collection = DB::connection('mongodb')->getCollection('movies'); $collection->createSearchIndex([ 'fields' => [ [ 'type' => 'vector', 'numDimensions' => 4, 'path' => 'embeddings', 'similarity' => 'cosine' ], ], ], ['name' => 'vector_index', 'type' => 'vectorSearch']);
Executar queries
Nesta seção, você pode aprender como usar a API Atlas Vector Search na integração com o Laravel. A Integração Laravel fornece o método vectorSearch()
como um método construtor de query e como um método de modelo Eloquent. Você pode utilizar o método vectorSearch()
para executar queries do Atlas Vector Search em documentos em suas collections.
Você deve passar os seguintes parâmetros para o método vectorSearch()
:
Parâmetro | Tipo | Descrição |
---|---|---|
|
| Nome do índice de pesquisa vetorial |
|
| Campo que armazena incorporações de vetor |
|
| Representação vetorial da sua query |
|
| Número de resultados a retornar |
O código a seguir usa o índice vector
criado na seção anterior Criar um índice do Atlas Vector Search para executar uma query do Atlas Vector Search na coleção movies
:
$movies = Book::vectorSearch( index: 'vector', path: 'vector_embeddings', // Vector representation of the query `coming of age` queryVector: [-0.0016261312, -0.028070757, ...], limit: 3, );
[ { "title": "Sunrising", "plot": "A shy teenager discovers confidence and new friendships during a transformative summer camp experience." }, { "title": "Last Semester", "plot": "High school friends navigate love, identity, and unexpected challenges before graduating together." } ]
Você pode usar o método vectorSearch()
para executar diversos tipos de queries de pesquisa do Atlas Search. Dependendo da consulta que você deseja, é possível passar os seguintes parâmetros opcionais para vectorSearch()
:
Parâmetro opcional | Tipo | Descrição | Valor padrão |
---|---|---|---|
|
| Especifica se uma pesquisa deve ser executada no vizinho mais próximo exato ( |
|
|
| Especifica um pré-filtro para documentos a serem pesquisados | sem filtragem |
|
| Especifica o número de vizinhos mais próximos a serem usados durante a pesquisa |
|
Observação
Para construir uma instância do QueryInterface
, você deve importar a classe MongoDB\Builder\Query
para seu aplicação.
Para saber mais sobre esses parâmetros, consulte a seção Campos da referência do operador $vectorSearch
na documentação do Atlas.