Menu Docs
Página inicial do Docs
/ / /
Mongoid
/

Pesquisa de texto

Nesta página

  • Definir índice de pesquisa de texto
  • Criar índice de texto
  • Como fazer queries usando o índice de texto

MongoDB forneceíndices de texto para dar suporte a queries de texto do Atlas Search no conteúdo da string . Os índices de texto podem incluir qualquer campo cujo valor seja uma string ou uma array de elementos da string.

Observação

MongoDB Atlas também fornece o Atlas Search , que é uma solução de Atlas Search de texto mais poderosa e flexível. O restante desta seção discute índices de texto e não Atlas Search.

Para realizar pesquisa de texto com Mongoid, siga estas etapas:

  1. Defina um índice de texto em um modelo.

  2. Crie o índice de texto no servidor.

  3. Crie uma query de pesquisa de texto .

A definição de índice por meio do Mongoid é descrita em detalhes na página deíndices . Os índices de pesquisa de texto são descritos em detalhes em Índices de texto no manual do MongoDB . Abaixo está uma definição de exemplo de um modelo de banda com um índice de texto utilizando o campo de descrição :

class Band
include Mongoid::Document
field :name, type: String
field :description, type: String
index description: 'text'
end

Observe que o tipo de índice (text) deve ser fornecido como uma string, não como um símbolo.

Para criar o índice, invoque a tarefa Rake db:mongoid:create_indexes:

bundle exec rake db:mongoid:create_indexes

Para encontrar bandas cuja descrição contém "ounces" ou suas variações, use o operador $text:

Band.where('$text' => {'$search' => 'ounces'}).to_a
# => [#<Band _id: 5d5341b3ce4ef35d5016746d, name: "foo", description: "ounce">]

Observe que a descrição contém a palavra "ounce" mesmo que a query de pesquisa tenha sido "ounces".

Observe também que, ao realizar a pesquisa de texto, o nome do campo não é especificado explicitamente - o operador $text pesquisa todos os campos indexados com o índice de texto.

Voltar

Consultas