Menu Docs
Página inicial do Docs
/
Atlas
/ / /

Defina mapeamentos de sinônimos em seu índice de pesquisa do MongoDB

A synonyms opção em uma definição de índice do MongoDB Search especifica mapeamentos de sinônimos que permitem indexar e pesquisar em sua coleção palavras que tenham o mesmo significado ou quase o mesmo. Para configurar um índice do MongoDB Search com mapeamentos de sinônimos, você deve:

  1. Adicione uma coleção de documentos de sinônimos ao seu cluster. Verifique se:

    • Sua coleção está no mesmo banco de dados que o índice que fará referência à coleção

    • Os documentos estão formatados corretamente

  2. Faça referência à coleção de fontes de sinônimos em um mapeamento de sinônimos na definição do índice.

Um mapeamento de sinônimos configura um índice do MongoDB Search para oferecer suporte a queries que aplicam sinônimos de uma coleção de fontes de sinônimos no mesmo banco de dados da coleção que você está indexando. Você pode usar sinônimos somente em consultas que usam o operador de texto.

Observação

Limitação de cluster de nível gratuito (M0)

Uma definição de índice pode ter somente um mapeamento de sinônimos.

Esta página descreve o formato da coleção de fontes de sinônimos e como definir mapeamentos de sinônimos que fazem referência à coleção de fontes de sinônimos em seu índice do MongoDB Search.

synonyms tem a seguinte sintaxe em uma definição de índice:

Sintaxe
1{
2 "synonyms": [
3 {
4 "name": "<synonym-mapping-name>",
5 "source": {
6 "collection": "<source-collection-name>"
7 },
8 "analyzer": "<synonym-mapping-analyzer>"
9 }
10 ]
11}

synonyms usa os seguintes campos em uma definição de índice:

Campo
Tipo
Descrição
necessidade

analyzer

string

Nome do analisador para utilizar com este mapeamento de sinônimo.

Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador.

Para usar sinônimos com palavras de parada, você deve indexar o campo usando o Standard Analyzer ou adicionar a entrada de sinônimo sem a palavra de parada.

Você pode usar qualquer analisador do MongoDB Search, exceto o seguinte:

Analisadores de idioma:

  • lucene.kuromoji

  • lucene.cjk

Tokenizadores de analisador personalizado e filtros de token:

Obrigatório

name

string

Nome do mapeamento de sinônimos. O nome deve ser exclusivo na definição do índice. O valor não pode ser uma string vazia.

Obrigatório

source

documento

Coleção de fontes para sinônimos. A opção source ocupa o campo collection .

Obrigatório

source.collection

string

Nome da coleção MongoDB que está no mesmo banco de dados que o índice MongoDB Search. Os documentos nesta coleção devem estar no formato descrito nos Documentos da Coleção da Fonte de Sinônimos.

Obrigatório

Cada documento na collection especificada como origem dos sinônimos descreve como uma ou mais palavras correspondem a um ou mais sinônimos dessas palavras.

Observação

Em clusters do Atlas de camada grátis, a coleção de sinônimos não pode exceder 10.000 documentos.

Você deve configurar cada documento com os seguintes campos:

Campo
Tipo
Descrição
necessidade

input

array de strings

Obrigatório para mapeamentos mappingType: explicit.

Para mapeamentos do explicit, os valores do synonyms são sinônimos de cada token do input. O valor não pode ser uma string vazia ou de espaços em branco. Você pode especificar o mesmo valor de input em vários documentos.

Condicional

mappingType

string

Tipo de mapeamento. O valor pode ser um dos seguintes:

  • equivalent - descreve um conjunto de tokens que são equivalentes entre si. Para um exemplo mappingType deste, consulte Exemplo.

  • explicit - corresponde a input tokens e os substitui por todos os synonyms tokens alternativos. Para um exemplo mappingType deste, consulte Exemplo.

Obrigatório

synonyms

array de strings

Palavras que são sinônimas umas das outras se mappingType for equivalent ou sinônimas de tokens input se mappingType for explicit. synonyms devem ter pelo menos um valor.

Para usar sinônimos com palavras de parada, você deve adicionar a entrada de sinônimo sem a palavra de parada ou indexar o campo usando o Analisador Padrão.

Para um exemplo de cada mappingType, consulte Exemplos de documentos da coleção de origem.

Obrigatório

Os documentos na coleção podem conter outros campos. Os documentos na coleção são aditivos e os mapeamentos são deduplicados. Os sinônimos do MongoDB Search são armazenados como uma coleção separada do Atlas , que conta com a mesma cota de armazenamento que qualquer outra coleção no Atlas. O MongoDB Search pode usar mais recursos de computação para aplicar sinônimos de coleções de origem de sinônimos maiores.

Aviso

Não inclua documentos de sinônimos inválidos na coleção de fontes de sinônimos. A Pesquisa do MongoDB não criará índices se os índices usarem mapeamentos de sinônimos que fazem referência a coleções com documentos inválidos. Inclua apenas documentos de sinônimo formatados corretamente em sua coleção de fontes de sinônimos.

O MongoDB não recomenda adicionar documentos de sinônimo a coleções de origem de sinônimo em um ambiente de produção sem antes validar se eles estão formatados corretamente e se comportam conforme o esperado em um ambiente de teste.

Se você fizer alterações em sua coleção de origem de sinônimos:

  • Não é necessário reindexar porque o MongoDB Search observa as alterações e atualiza automaticamente seu mapa interno de sinônimos.

  • O tempo que o MongoDB Search leva para atualizar os mapeamentos de sinônimos aumenta com o tamanho da coleção de fontes de sinônimos. Observe que as alterações nos documentos de sinônimos terminarão por se refletir nos resultados da query do MongoDB Search.

O Atlas fornece os documentos para os seguintes exemplos de tipo de mapeamento do MongoDB Search em uma coleção sample_synonyms chamada. Você pode carregar esses documentos no cluster no mesmo banco de dados da coleção. Para carregar esses documentos no cluster, ao criar o índice para a coleção, faça o seguinte:

  1. Ao selecionar Configuration Method, selecione Visual Editor.

  2. Ao Add synonym mapping ao seu índice, selecione Load sample collection no menu suspenso Synonym source collection.

No seguinte exemplo de documento de coleção de origem, o mappingType é definido como equivalent para que os tokens car, vehicle e automobile sejam configurados como sinônimos entre si.

{
"mappingType": "equivalent",
"synonyms": ["car", "vehicle", "automobile"]
}

Para uma query de texto car para, vehicle ou automobile aplicando um mapeamento de sinônimo que inclua tal documento, o MongoDB Search retorna documentos que contenham o car termo, vehicle automobileou.

No seguinte exemplo de documento da coleção de origem, mappingType é definido como explicit para que os tokens beer, brew e pint sejam configurados como sinônimos do token input beer.

{
"mappingType": "explicit",
"input": ["beer"],
"synonyms": ["beer", "brew", "pint"]
}

Para uma query de texto para beer aplicar um mapeamento de sinônimo que inclua tal documento, a Pesquisa do MongoDB retorna documentos que contenham os termos "cerveja", "cerva" ou "breja" porque o input token beer está explicitamente mapeado a todos esses synonyms tokens . No entanto, para uma query pint para, a MongoDB Search não localiza documentos que contenham beer porque pint não está explicitamente mapeado beer para.

A seguinte coleção chamada synonymous_terms é um exemplo de coleção de fontes de sinônimos que pode ser usada com a coleção movies no banco de banco de dados sample_mflix .

A coleção sample_mflix.synonymous_terms contém os seguintes documentos:

{
"mappingType": "equivalent",
"synonyms": ["car", "vehicle", "automobile"]
}
{
"mappingType": "explicit",
"input": ["race"],
"synonyms": ["contest", "rally"]
}
{
"mappingType": "equivalent",
"synonyms": ["dress", "apparel", "attire"]
}
{
"mappingType": "explicit",
"input": ["boat"],
"synonyms": ["vessel", "sail"]
}

Voltar

fonte armazenada

Nesta página