Menu Docs
Página inicial do Docs
/ / /
Laravel MongoDB
/

Atlas Vector Search

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.

Você pode criar um índice do Atlas Search das seguintes maneiras:

  • Chame o método create() na interface Schema e passe o método assistente vectorSearchIndex() 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ção type 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']);

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

index

string

Nome do índice de pesquisa vetorial

path

string

Campo que armazena incorporações de vetor

queryVector

array

Representação vetorial da sua query

limit

int

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

exact

bool

Especifica se uma pesquisa deve ser executada no vizinho mais próximo exato (true) ou no vizinho mais próximo aproximado (false)

false

filter

QueryInterface ou array

Especifica um pré-filtro para documentos a serem pesquisados

sem filtragem

numCandidates

int ou null

Especifica o número de vizinhos mais próximos a serem usados durante a pesquisa

null

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.

Voltar

Atlas Search

Nesta página

  • Visão geral
  • Crie um índice do Atlas Vector Search
  • Executar queries