MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Pesquisa de texto completo no MongoDB não produzindo o resultado esperado para @@@


A pesquisa de texto foi projetada para indexar strings com base em heurística de idioma . A indexação de texto envolve duas etapas gerais:tokenização (converter uma string em termos individuais de interesse) seguido por stemming (convertendo cada termo em uma forma raiz para indexação com base em regras específicas do idioma).

Durante a etapa de tokenização, certos caracteres (por exemplo, símbolos de pontuação como @ ) são classificados como separadores de palavras (também conhecidos como delimitadores ) em vez de entrada de texto e usado para separar a string original em termos. palavras de parada específicas do idioma (palavras comuns como "the", "is" ou "on" em inglês) também são excluídas de um índice de texto.

Desde sua frase de pesquisa de @@@ consiste inteiramente de delimitadores, não há entrada correspondente no índice de texto.

Se você quiser combinar padrões de string genéricos, use expressões regulares em vez de pesquisa de texto. Por exemplo:db.getCollection('TestCollection').find({field2:/@@@/}) . No entanto, observe as advertências sobre o uso do índice para expressões regulares.