English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
a partir de2.4A partir da versão inicial, o MongoDB começou a suportar índices de texto para pesquisa de conteúdo de strings. A Pesquisa de Texto (Text Search) usa a análise de raízes em técnicas de análise de palavras para encontrar palavras específicas em campos de strings, removendo palavras de stop (como a, an, The, etc.). Atualmente, o MongoDB suporta aproximadamente15qualquer idioma.}
Inicialmente, "Text Search (Pesquisa de Texto)" era uma funcionalidade experimental, mas desde2.6a partir da versão, essa configuração está habilitada por padrão.
Considerando o seguinteposts
os documentos na coleção, que contêm o texto do post e suas tags-
> db.posts.insert({ "post_text": "aproveite os artigos de mongodb no w3codebox", "tags": ["mongodb", "w3codebox"] } { "post_text": "escrevendo tutoriais sobre mongodb", "tags": ["mongodb", "tutorial"] }) WriteResult({ "nInserted": 1 })
Vamos criar um índice de texto no campo post_text para que possamos procurar no texto dos posts-
> db.posts.createIndex({post_text:"text"}) { "createdCollectionAutomatically": true, "numIndexesBefore": 1, "numIndexesAfter": 2, "ok": 1 }
Agora, criamos um índice de texto no campo post_text, vamos procurarw3codebox
todos os posts que contêm a palavra.
> db.posts.find({$text:{$search:"w3codebox"}}.pretty(){ "_id": ObjectId("5dd7ce28f1dd4583e7103fe0"), "post_text": "aproveite os artigos de mongodb no w3codebox", "tags": [ "mongodb", "w3codebox" ] }
O comando acima retorna o seguinte documento de resultado, o documentow3codebox
o texto de publicação contém a palavra:
{ "_id": ObjectId("53493d14d852429c10000002", "post_text": "aproveite os artigos de mongodb no w3codebox", "tags": ["mongodb", "w3codebox"]}
Para excluir o índice de texto existente, por favor, use a seguinte consulta para encontrar o nome do índice-
>db.posts.getIndexes()[ { "v": 2, "key": { "_id": 1 } "name": "_id_", "ns": "mydb.posts" } { "v": 2, "key": { "fts": "text", "ftsx": 1 } "name": "post_text_text", "ns": "mydb.posts", "weights": { "post_text": 1 } "default_language": "english", "language_override": "language", "textIndexVersion": 3 } ] >
Após obter o nome do índice da consulta acima, execute o comando a seguir. Aqui,post_text_text
É o nome do índice.
>db.posts.dropIndex("post_text_text") { "nIndexesWas": 2, "ok": 1 }