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

Atlas Search

Neste guia, você pode aprender como realizar pesquisas em seus documentos usando o recurso Atlas Search. O Laravel MongoDB oferece uma API para executar consultas do Atlas Search diretamente com seus modelos. Este guia descreve como criar índices de pesquisa do Atlas Search e fornece exemplos de como usar a Integração do Laravel para realizar pesquisas.

Observação

Compatibilidade de implantação

Você pode usar a funcionalidade Atlas Search somente quando se conectar a MongoDB Atlas clusters. Esta funcionalidade não está disponível para implementações autogerenciadas.

Para aprender mais sobre o Atlas Search, consulte a Visão geral na documentação do Atlas. A API do Atlas Search usa internamente o operador de agregação $search para realizar consultas. Para aprender mais sobre este operador, consulte a referência de $search na documentação do Atlas.

Observação

Talvez você não consiga usar os métodos descritos neste guia para todos os tipos de consulta do Atlas Search. Para casos de uso mais complexos, crie um pipeline de agregação usando o Construtor de Agregação.

Para realizar pesquisas em incorporações vetoriais no MongoDB, você pode usar a API Laravel do Atlas Vector Search do MongoDB. Para saber mais sobre esse recurso, consulte o guia Atlas Vector 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 searchIndex() 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, depois chame o método createSearchIndex() da Biblioteca PHP do MongoDB, conforme mostrado no código a seguir:

    $collection = DB::connection('mongodb')->getCollection('movies');
    $collection->createSearchIndex(
    ['mappings' => ['dynamic' => true]],
    ['name' => 'search_index']
    );

Nesta seção, você pode aprender a usar a API do Atlas Search na integração com o Laravel.

A integração do Laravel fornece o método search() como método de construção de queries e como método de modelo Eloquent. Você pode usar o método search() para executar queries do Atlas Search em documentos nas suas coleções.

Você deve passar um parâmetro operator para o método search() que seja uma instância de SearchOperatorInterface ou um array que contenha o tipo de operador, o nome do campo e o valor da query. Você pode criar uma instância de SearchOperatorInterface ao chamar o método Search::text() e passar o campo que está consultando junto com seu termo ou sua frase de pesquisa.

Você deve incluir a seguinte declaração de importação em seu aplicativo para criar uma instância de SearchOperatorInterface:

use MongoDB\Builder\Search;

O código a seguir realiza uma consulta Atlas Search no campo title do modelo Movie para o termo 'dream':

$movies = Movie::search(
sort: ['title' => 1],
operator: Search::text('title', 'dream'),
)->all();
[
{ "title": "Dreaming of Jakarta",
"year": 1990
},
{ "title": "See You in My Dreams",
"year": 1996
}
]

Você pode usar o método search() 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 search():

Parâmetro opcional
Tipo
Descrição

index

string

Fornece o nome do índice de pesquisa do Atlas Search a ser usado

highlight

array

Especifica as opções de realce para exibir os termos de pesquisa em seu contexto original

concurrent

bool

Paraleliza a query de pesquisa entre segmentos em nós de pesquisa dedicados

count

string

Especifica as opções de contagem para recuperar uma contagem dos resultados

searchAfter

string

Especifica um ponto de referência para retornar documentos que começam imediatamente após esse ponto

searchBefore

string

Especifica um ponto de referência para retornar documentos que começam imediatamente antes desse ponto

scoreDetails

bool

Especifica se um detalhamento da pontuação para os resultados deve ser recuperado

sort

array

Especifica os campos nos quais classificar os resultados

returnStoredSource

bool

Especifica se deve ser realizada uma pesquisa completa de documentos no banco de dados de backend ou se devem ser retornados apenas os campos de origem armazenados diretamente do Atlas Search

tracking

array

Especifica a opção de rastreamento para recuperar informações de análise sobre os termos de pesquisa

Para saber mais sobre esses parâmetros, consulte a seção Campos da referência do operador $search na documentação do Atlas.

A integração do Laravel fornece o método autocomplete() como método de construção de queries e como método de modelo Eloquent. Você pode usar o método autocomplete() para executar pesquisas de preenchimento automático em documentos das suas coleções. Este método retorna apenas os valores do campo que você especificar como caminho da query.

Para aprender mais sobre esse tipo de query do Atlas Search, consulte a referência de preenchimento automático na documentação do Atlas.

Observação

Você deve criar um índice Atlas Search com uma configuração de preenchimento automático na sua coleção antes de poder realizar pesquisas de preenchimento automático. Consulte a seção Criar um índice do Atlas Search deste guia para saber mais.

O código a seguir executa uma query de preenchimento automático do Atlas Search para a string "jak" no campo title:

$movies = Movie::autocomplete('title', 'jak')->all();
[
"Dreaming of Jakarta",
"Jakob the Liar",
"Emily Calling Jake"
]

Você também pode passar os seguintes parâmetros opcionais para o método autocomplete() para customizar a query:

Parâmetro opcional
Tipo
Descrição
Valor padrão

fuzzy

bool ou array

Permite a pesquisa difusa e as opções de pesquisa difusa

false

tokenOrder

string

Especifica a ordem na qual pesquisar tokens

'any'

Para aprender mais sobre esses parâmetros, consulte a seção Opções da referência do operador autocomplete na documentação do Atlas.

Voltar

Construtor de agregações

Nesta página

  • Visão geral
  • criar um índice do atlas search
  • Executar queries
  • Consultas gerais
  • Queries de preenchimento automático