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")