Observação
O MongoDB oferece uma solução aprimorada de pesquisa de texto completo, MongoDB Search, e uma solução de pesquisa semântica, MongoDB Vector Search. Recomendamos usar os estágios $search, $searchMeta ou $vectorSearch em vez do operador $text.
Estrutura de query
Você pode usar o $text operador em uma coleção com um índice de texto.
$text tokeniza a string de pesquisa usando espaços em branco e a maior parte da pontuação como delimitadores e executa um OR lógico de todos esses tokens na string de pesquisa.
Por exemplo, você pode usar a query a seguir para encontrar todas as lojas que contêm quaisquer termos da lista " coffee ", "shop" e "java" na coleção stores:
db.stores.find( { $text: { $search: "java coffee shop" } } )
Utilize o operador de query $meta para obter e classificar pela pontuação de relevância de cada documento correspondente. Por exemplo, para ordenar uma lista de cafés em ordem de relevância, execute o seguinte:
db.stores.find( { $text: { $search: "coffee shop cake" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } )
Para obter mais informações sobre os operadores $text e $meta, incluindo restrições e comportamento, consulte:
Pipeline de agregação
Ao trabalhar com pipelines de agregação, utilize o $match com uma $text expressão. Para classificar os resultados em ordem de pontuação de relevância, utilize o operador de agregação $meta na etapa $sort.
Para obter mais informações e exemplos, consulte $text no pipeline de agregação.
MongoDB Search fornece o estágio de agregação $search para realizar pesquisas de texto completo em suas coleções.