Menu Docs
Página inicial do Docs
/
MongoDB 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 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.

    • Formate os documentos da coleção conforme descrito nos Documentos da coleção de fontes de 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

    Limitação de cluster de nível gratuito (M0) e compartilhado (M2 e M5)

    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 no seu índice do Atlas Search. Um mapeamento de sinônimos configura um índice do Atlas Search para suportar queries 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 IU do Atlas ou na API do Atlas Search para criar o índice. Você pode usar sinônimos somente em queries 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.

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").

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 utilizar qualquer analisador do Atlas 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 utiliza o campo collection.
Obrigatório
source.collection
string
Nome da coleção MongoDB que está no mesmo banco de dados que o índice do Atlas Search. Os documentos nesta coleção devem estar no formato descrito nos Documentos de coleção de 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.

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:

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 .

Observação

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

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"]
}

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

Observação

Para queries de exemplo na coleção sample_mflix.movies usando o índice de mapeamento dinâmico abaixo, consulte exemplos nos operadores de texto e frase.

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 synonymous_terms .

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

  • Habilita sinônimos da coleção synonymous_terms 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 movies no banco de dados sample_mflix.

  1. Clique em Refine Your Index.

  2. Na seção Field Mappings, clique em Add Field.

  3. Clique em Customized Configuration.

  4. Defina as seguintes configurações na janela Add Field Mapping :

    Field Name
    Enable Dynamic Mapping
    Data Type Configuration
    Selecione plot.
    Alterne para desabilitar.
    1. Clique em Add Data Type.

    2. Selecione String no menu suspenso.

    3. Selecione lucene.english em lucene.language no menu suspenso Index Analyzer .

  5. Clique em Add.

  6. Na seção Synonyms Mappings, clique em Add Synonym Mapping.

  7. Defina as seguintes configurações na janela Add Synonym Mapping :

    Synonym mapping name
    Synonym source collection
    Analyzer
    Digitar my_synonyms
    Selecione synonymous_terms.
    Selecione lucene.english em lucene.language no menu suspenso.
  8. Clique em Add.

Substitua o índice padrão pelo seguinte índice.

{
"mappings": {
"dynamic": false,
"fields": {
"plot": {
"type": "string",
"analyzer": "lucene.english"
}
}
},
"synonyms": [
{
"analyzer": "lucene.english",
"name": "my_synonyms",
"source": {
"collection": "synonymous_terms"
}
}
]
}

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 synonymous_terms.

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

  • Habilita sinônimos da coleção synonymous_terms 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 movies no banco de dados sample_mflix.

  1. Clique em Refine Your Index.

  2. Na seção Synonyms Mappings, clique em Add Synonym Mapping.

  3. Defina as seguintes configurações na janela Add Synonym Mapping :

    Synonym mapping name
    Synonym source collection
    Analyzer
    Digitar my_synonyms
    Selecione synonymous_terms.
    Selecione lucene.standard no menu suspenso se ainda não estiver selecionado.
  4. Clique em Add.

{
"mappings": {
"dynamic": true
},
"synonyms": [
{
"analyzer": "lucene.standard",
"name": "my_synonyms",
"source": {
"collection": "synonymous_terms"
}
}
]
}

Voltar

3: configure os campos armazenados