Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBMongoDB Atlas

Defina Mapeamentos Sinônimos em seu Índice de Busca no Atlas

Nesta página

  • Sintaxe
  • Opções
  • Documentos de collection de fonte de sinônimos
  • Documentos de coleção de formato de fonte de sinônimos
  • Alterações nos documentos de coleção de fonte de sinônimos
  • mappingType Exemplos
  • equivalent
  • explicit
  • Exemplo
  • Exemplo de coleção
  • Exemplo de collection de fonte de sinônimos
  • Exemplos de definição de índice
  • Mapeamento estático
  • Mapeamento dinâmico

synonyms permitem que você indexe e pesquise em sua coleção palavras que tenham o mesmo ou quase o mesmo significado. Para configurar um índice do Atlas Search com mapeamentos de sinônimos, você deve:

  1. Crie uma nova coleção com documentos sinônimos formatados corretamente. Verifique se:

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

    • Você formata os documentos na coleção conforme descrito nosDocumentos de Coleção de Origem dos Sinônimos .

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

    Observação

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

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 Atlas Search. Um mapeamento de sinônimos configura um índice do Atlas Search para suportar consultas que aplicam sinônimos de uma coleção de fontes de sinônimos separada. Você pode usar a visualização Atlas Search Visual Editor ou a visualização Atlas Search JSON Editor na interface do usuário do Atlas ou na API do Atlas Search para criar o índice. Você pode usar sinônimos somente em consultas que usam o operador de texto .

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

1{
2 "name": "<index-name>",
3 "analyzer": "<analyzer-for-index>",
4 "searchAnalyzer": "<analyzer-for-query>",
5 "mappings": {
6 "dynamic": <boolean>,
7 "fields": { <field-definition> }
8 },
9 "synonyms": [
10 {
11 "name": "<synonym-mapping-name>",
12 "source": {
13 "collection": "<source-collection-name>"
14 },
15 "analyzer": "<synonym-mapping-analyzer>"
16 }
17 ]
18}

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.

Observação

Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador. Por padrão, o Atlas Search utiliza o analisador padrão ("lucene.standard").

Você pode utilizar qualquer analisador do Atlas Search, exceto o seguinte:

Analisadores de idioma:

  • lucene.kuromoji

  • lucene.cjk

Tokenizadores de analisador personalizado e filtros de token:

Observação

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.

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 Atlas 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 camadas gratuitas e compartilhadas, 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 deste mappingType, consulte Exemplo.

  • explicit - corresponde a input tokens e os substitui por todos os synonyms tokens alternativos. Para um exemplo deste mappingType, 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.

Observação

O Atlas Search considera que cada string, independentemente do número de palavras dentro dela, seja um token único. Por exemplo, o Atlas Search tokeniza a string sushi chef como um único termo e não retorna nenhum resultado para uma pesquisa por sushi ou chef individualmente.

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 mappingType Exemplos.

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 Atlas 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 Atlas 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. O Atlas Search 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 Atlas Search observa as alterações e atualiza automaticamente seu mapa interno de sinônimos.

  • O tempo que o Atlas 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 Atlas Search.

O Atlas fornece os documentos para os seguintes exemplos de tipo de mapeamento da Atlas Search em uma coleção chamada sample_synonyms. 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.

Exemplo

Neste exemplo de tipo de mapeamento do equivalent, os tokens synonyms car, vehicle e automobile são configurados para serem sinônimos um do outro:

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

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

Exemplo

Neste exemplo de tipo de mapeamento do explicit, o token input beer está configurado para considerar beer, brew e pint como sinônimos:

{
"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, o Atlas Search retorna documentos que contêm os termos "cerveja", "cerva" ou "breja" porque o beer de token input é explicitamente mapeado para todos esses tokens synonyms. No entanto, para uma query para pint, o Atlas Search não localiza documentos que contenham beer porque pint não está explicitamente mapeado para beer.

Os exemplos desta página incluem:

user_feedback.comments contém os seguintes documentos:

{
"type": "car dealer",
"comments": "Blue four-door sedan, lots of trunk space in the car."
}
{
"type": "winery",
"comments": "Beer and skittles for all."
}
{
"type": "apparel store",
"comments": "Beautiful apparel for the bride."
}
{
"type": "recreation rental",
"comments": "Sails as well as the day it was made."
}

A seguinte coleção intitulada user_feedback.synonyms é uma coleção de origem de sinônimo de exemplo para a coleção user_feedback.comments.

Observação

Para saber como formatar os documentos na coleção, consulte Documentos de coleção de fonte de sinônimos.

user_feedback.synonyms contém os seguintes documentos:

{
"mappingType": "equivalent",
"synonyms": ["car", "vehicle", "automobile"]
}
{
"mappingType": "explicit",
"input": ["beer"],
"synonyms": ["beer", "brew", "pint"]
}
{
"mappingType": "equivalent",
"synonyms": ["dress", "apparel", "attire"]
}
{
"mappingType": "explicit",
"input": ["boat"],
"synonyms": ["boat", "vessel", "sail"]
}

Os exemplos a seguir da collection user_feedback.comments mostram as definições do índice usando mapeamentos estáticos e dinâmicos.

Observação

Para queries de exemplo na coleção user_feedback.comments usando os índices a seguir, consulte exemplos no operador de texto .

O seguinte índice:

  • Configura um índice com um campo de texto único e uma definição de mapeamento de sinônimo único que utiliza o mapeamento configurado na coleção user_feedback.synonyms .

  • Analisa o campo comments com o analisador lucene.english.

  • Habilita sinônimos da coleção synonyms para queries sobre campos analisados com o analisador lucene.english.

Você pode usar o Editor Visual ou o EditorJSON na interface do usuário do Atlas para configurar o índice a seguir. Para configurar esse índice, depois de selecionar o método de configuração, selecione a coleção comments no banco de dados user_feedback.

O seguinte índice:

  • Configura um índice para todos os campos nos documentos e uma única definição de mapeamento de sinônimo que utiliza o mapeamento configurado na coleção user_feedback.synonyms.

  • Utiliza o analisador padrão, lucene.standard, para analisar todos os campos.

  • Habilita sinônimos da coleção synonyms para queries sobre campos analisados com o analisador lucene.standard.

Você pode utilizar o Editor Visual ou o Editor JSON na UI do Atlas para configurar o seguinte índice. Para configurar este índice, após selecionar seu método de configuração, selecione a collection comments no banco de dados user_feedback.

← Defina campos de origem armazenados em seu índice do Atlas Search