Latest web development tutorials

MongoDB pesquisa de texto completo

A criação de um índice de pesquisa de texto completo para cada palavra, indicando o número ea localização da palavra aparece no artigo, quando uma consulta do usuário, o programa de pesquisa será estabelecida com antecedência para encontrar o índice e os resultados da pesquisa de volta ao método de pesquisa do usuário.

Este processo é semelhante à palavra de busca por processo de recuperação de tabela do dicionário de palavra.

MongoDB versão 2.4 desde o início para suportar pesquisa de texto completo, atualmente suporta 15 idiomas (temporariamente não suporta chinês) índice de texto completo.

  • dinamarquês
  • holandês
  • Inglês
  • finlandês
  • francês
  • alemão
  • húngaro
  • italiano
  • norueguês
  • português
  • romeno
  • russo
  • espanhol
  • sueco
  • turco

Ativar pesquisa de texto completo

Após MongoDB versão 2.6 é habilitado por padrão pesquisa de texto completo, se você usar a versão anterior, você precisa usar o seguinte código para habilitar a pesquisa de texto completo:

>db.adminCommand({setParameter:true,textSearchEnabled:true})

Ou use o comando:

mongod --setParameter textSearchEnabled=true

Criar um índice de texto completo

Considere os seguintes conjuntos de dados documento lança, incluindo o conteúdo do artigo (POST_TEXT) e etiquetas (tags):

{
   "post_text": "enjoy the mongodb articles on w3cschool.cc",
   "tags": [
      "mongodb",
      "w3cschool"
   ]
}

Nós podemos construir índice de texto completo de campo POST_TEXT, para que possamos pesquisar o conteúdo do artigo:

>db.posts.ensureIndex({post_text:"text"})

Use indexação de texto completo

Agora que nós estabelecemos um índice de texto completo de POST_TEXT, podemos procurar por palavras-chave no artigo w3cschool.cc:

>db.posts.find({$text:{$search:"w3cschool.cc"}})

O comando a seguir retorna os dados do documento contidos w3cschool.cc seguintes palavras-chave:

{ 
   "_id" : ObjectId("53493d14d852429c10000002"), 
   "post_text" : "enjoy the mongodb articles on w3cschool.cc", 
   "tags" : [ "mongodb", "w3cschool" ]
}
{
   "_id" : ObjectId("53493d1fd852429c10000003"), 
   "post_text" : "writing tutorials on w3cschool.cc",
   "tags" : [ "mongodb", "tutorial" ] 
}

Se você estiver usando uma versão mais antiga do MongoDB, você pode usar o seguinte comando:

>db.posts.runCommand("text",{search:" w3cschool.cc"})

Use indexação de texto completo pode melhorar a eficiência de busca.


Remover indexação de texto completo

Excluir o índice de texto completo existente, você pode usar o comando Localizar para encontrar o nome do índice:

>db.posts.getIndexes()

Obter o nome do índice acima de comando, neste caso, o índice chamado post_text_text, execute o seguinte comando para excluir o índice:

>db.posts.dropIndex("post_text_text")