0Pricing
Elasticsearch & Full Text Search Systems · Aula

Personalizando mapeamentos de campos

Aprofunde-se na definição de mapeamentos explícitos para vários tipos de campos, incluindo campos de texto, palavras-chave, numéricos, de data e booleanos.

Personalizando mapeamentos de campos é uma aula grátis de Elasticsearch & Full Text Search Systems no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Elasticsearch & Full Text Search Systems, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Elasticsearch & Full Text Search Systems inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Why Customize Mappings?

Elasticsearch is smart! It often guesses your data types when you index a document (this is called dynamic mapping). But sometimes, you need more precise control.

Explicit mappings let you define exactly how each field in your documents should be stored and indexed. This is crucial for optimal search behavior, efficient storage, and accurate aggregations.

Defining Your Index's Blueprint

A mapping acts like a schema for your index. You typically define it when you create a new index. It lives within the "mappings" object in your index creation request.

Here's the basic structure:

PUT /my_new_index
{
  "mappings": {
    "properties": {
      "your_field_name": {
        "type": "field_type_here"
      }
    }
  }
}

The "properties" object holds all your field definitions.

The 'text' Field Type

The text field type is designed for full-text search. Think of blog post content, product descriptions, or comments.

When you index data into a text field, Elasticsearch "analyzes" it:

  • Breaks it into individual words (tokens).
  • Converts words to lowercase.
  • Removes common words (stop words) if configured.

This process makes text highly searchable but means it's not suitable for exact matching, filtering, or sorting.

The 'keyword' Field Type

The keyword field type is for exact values that should remain as-is, without analysis. Use it when you need precise matching, filtering, or sorting.

Examples of data suitable for keyword fields:

  • Product IDs (e.g., "PROD-123")
  • Tags (e.g., "new_arrival")
  • Usernames (e.g., "john_doe")
  • Status codes (e.g., "active", "pending")

keyword fields are very efficient for aggregations and exact filters.

'text' vs. 'keyword' Example

Let's illustrate the difference. Imagine indexing a blog post with a title and a tag:

PUT /my_blog_posts
{
  "mappings": {
    "properties": {
      "title": { "type": "text" },
      "tag":   { "type": "keyword" }
    }
  }
}

Searching for "quick brown" in title would find "The quick brown fox". Searching for "quick brown" in tag would only match if the tag was *exactly* "quick brown".

Numeric Field Types

Elasticsearch provides various numeric types to store whole numbers and decimals efficiently. Choosing the right type saves space and optimizes query performance.

  • Whole Numbers: long, integer, short, byte. Use integer for age, long for large IDs.
  • Decimal Numbers: double, float, half_float, scaled_float. Use float or double for prices or measurements.

For example, "age": { "type": "integer" }.

Date Field Type

The date field type is used for storing dates and times. Elasticsearch supports many standard date formats by default, like ISO 8601.

You can also define a custom format if your dates are in a specific pattern:

"publish_date": {
  "type": "date",
  "format": "yyyy/MM/dd HH:mm:ss||yyyy/MM/dd"
}

Dates are internally stored as milliseconds since the epoch, which allows for efficient range queries and sorting.

Boolean Field Type

The boolean field type is simple and efficient for storing true or false values. It's perfect for binary flags or status indicators.

For example, to indicate if a product is currently available:

"is_available": {
  "type": "boolean"
}

Elasticsearch accepts various representations for true/false, such as "true", "false", "T", "F", "on", "off", "yes", "no", "1", "0".

A Full Custom Mapping Example

Let's combine what we've learned to create a comprehensive mapping for a typical e-commerce product index:

PUT /products_catalog
{
  "mappings": {
    "properties": {
      "product_id":     { "type": "keyword" },
      "name":           { "type": "text" },
      "description":    { "type": "text" },
      "price":          { "type": "float" },
      "stock_quantity": { "type": "integer" },
      "category":       { "type": "keyword" },
      "release_date":   { "type": "date", "format": "yyyy-MM-dd" },
      "is_featured":    { "type": "boolean" }
    }
  }
}

Mapping Quiz

A field named "order_id" stores unique transaction identifiers like "TXN-2023-007". You need to be able to filter and sort orders by this ID precisely. Which field type is most appropriate?

Recap: Custom Mappings

Great job! You've taken a deep dive into explicitly defining field mappings in Elasticsearch.

We covered:

  • Why custom mappings are essential for precise control.
  • The basic structure for defining index mappings.
  • Key field types: text, keyword, numeric, date, and boolean.
  • How to choose the right type for your specific data needs.

Customizing mappings is a fundamental skill for building efficient and powerful search applications!

Perguntas Frequentes

A aula “Personalizando mapeamentos de campos” é grátis?

Sim — o texto completo de “Personalizando mapeamentos de campos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Elasticsearch & Full Text Search Systems, atualize para CoddyKit PRO. O curso de Elasticsearch & Full Text Search Systems inclui 4 aulas no total.

O que vou aprender em “Personalizando mapeamentos de campos”?

Aprofunde-se na definição de mapeamentos explícitos para vários tipos de campos, incluindo campos de texto, palavras-chave, numéricos, de data e booleanos. Você pratica Elasticsearch & Full Text Search Systems com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Elasticsearch & Full Text Search Systems?

Nenhuma experiência prévia é necessária. Elasticsearch & Full Text Search Systems no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Personalizando mapeamentos de campos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Elasticsearch & Full Text Search Systems?

Sim. Cada aula de Elasticsearch & Full Text Search Systems inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Personalizando mapeamentos de campos
  2. Mapeamentos dinâmicos versus explícitos
  3. Modelos e aliases de índices
  4. Tipos de campos aninhados e de objeto
← Voltar para Elasticsearch & Full Text Search Systems