EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Modelagem de dados em várias linguagens do Atlas Search

Ethan Steininger, Harshad Dhavale2 min read • Published Sep 07, 2022 • Updated Sep 09, 2022
AtlasPesquisa
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Vivemos numa economia cada vez mais globalizada. Por extensão, os usuários esperam que nossos aplicativos entendam o contexto de sua cultura e, por extensão, seu idioma.
Felizmente, a maioria dos mecanismos de busca – incluindo o Atlas Search – oferece suporte a várias linguagens. Este artigo abordará três opções de padrões de query, modelos de dados e definições de índice para atender às suas diversas necessidades de aplicativos multilíngues.
Para ilustrar as opções, criaremos um cenário fictício. Gerenciamos um aplicativo de pesquisa de receitas que oferece suporte a três países, e, por extensão, três idiomas: inglês, chinês (Kuromoji) e alemão. Nossos usuários estão localizados em todo o mundo e precisam pesquisar receitas no idioma nativo.

1. Campo Único

Temos um documento para cada linguagem na mesma coleção e, portanto, cada campo é indexado separadamente como sua própria linguagem. Isso simplifica os padrões de query e a UX às custas do armazenamento de índice inchado.
Documento:
Índice:
Query:
Prós:
  • Uma única definição de índice.
  • Não é necessário especificar o nome ou caminho do índice com base no idioma do usuário.
  • Pode aceitar vários idiomas em uma única query.
Contras:
  • À medida que mais campos são adicionados, a definição do índice precisa mudar.
  • A carga útil da definição do índice é potencialmente muito grande (mapeamento de campo estático por idioma).
  • Campos de indexação como idiomas irrelevantes causam um tamanho de índice maior do que o necessário.

2. Múltiplas coleções

Temos uma coleção e um índice por idioma, o que nos permite isolar os diferentes idiomas das receitas. Isso pode ser útil se tivermos mais receitas em alguns idiomas do que em outros, às custas de muitas coleções e índices.
Documentos:
Índice:
Query:
Prós:
  • Pode copiar a mesma definição de índice para cada coleção (substituindo o idioma).
  • Isolar documentos de linguagens diferentes.
Contras:
  • Os desenvolvedores precisam fornecer antecipadamente o nome da linguagem no caminho do índice.
  • Necessidade de copiar documentos entre coleções na atualização.
  • Cada índice é um cursor de fluxo de alterações, portanto, sua manutenção pode ser cara.

3. Vários campos

Ao incorporar cada idioma em um campo pai, podemos colocalizar as traduções de cada receita em cada documento.
Documento:
Índice:
Query:
Prós:
  • Mais fácil gerenciar documentos.
  • A definição do índice é esparsa.
Contras:
  • A carga útil da definição do índice é potencialmente muito grande (mapeamento de campo estático por idioma).
  • Query e UX mais complexas.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

Como habilitar o teste local e automático de recursos baseados na pesquisa do Atlas


Jun 12, 2024 | 8 min read
Início rápido

Início rápido 2: pesquisa vetorial com MongoDB e OpenAI


May 06, 2024 | 12 min read
Tutorial

Introdução ao MongoDB Atlas Search e Java


Jul 30, 2024 | 7 min read
Início rápido

Construindo aplicativos de AI e RAG com MongoDB, Anyscale e PyMongo


Jul 17, 2024 | 7 min read
Sumário
  • 1. Campo Único