Bird
Raised Fist0
Elasticsearchquery~10 mins

Creating an index in Elasticsearch - Visual Walkthrough

Choose your learning style10 modes available
Concept Flow - Creating an index
Start
↓
Define index name
↓
Define index settings and mappings
↓
Send PUT request to Elasticsearch
↓
Elasticsearch creates index
↓
Receive confirmation response
↓
Index ready for data
↓
End
This flow shows how you create an index in Elasticsearch by defining its name, settings, and mappings, then sending a request to create it, and finally receiving confirmation.
Execution Sample
Elasticsearch
PUT /my-index
{
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {"name": {"type": "text"}}
  }
}
This code creates an index named 'my-index' with one shard and a mapping for a 'name' field of type text.
Execution Table
StepActionRequest ContentResponseResult
1Define index name 'my-index'N/AN/AIndex name set
2Define settings: number_of_shards=1{"number_of_shards":1}N/ASettings prepared
3Define mappings: 'name' as text{"properties":{"name":{"type":"text"}}}N/AMappings prepared
4Send PUT request to /my-indexPUT /my-index with settings and mappings{"acknowledged":true,"shards_acknowledged":true,"index":"my-index"}Index created successfully
5Index ready for dataN/AN/AReady to index documents
💡 Index creation acknowledged by Elasticsearch, ready for use.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
index_nameundefinedmy-indexmy-indexmy-indexmy-indexmy-index
settingsundefinedundefined{"number_of_shards":1}{"number_of_shards":1}{"number_of_shards":1}{"number_of_shards":1}
mappingsundefinedundefinedundefined{"properties":{"name":{"type":"text"}}}{"properties":{"name":{"type":"text"}}}{"properties":{"name":{"type":"text"}}}
responseundefinedundefinedundefinedundefined{"acknowledged":true,"shards_acknowledged":true,"index":"my-index"}{"acknowledged":true,"shards_acknowledged":true,"index":"my-index"}
Key Moments - 2 Insights
Why do we need to define settings and mappings before creating the index?
Settings and mappings tell Elasticsearch how to store and understand data. As shown in execution_table rows 2 and 3, these prepare the index structure before creation in row 4.
What does the response from Elasticsearch mean after sending the PUT request?
The response in execution_table row 4 with "acknowledged":true means Elasticsearch successfully created the index and it is ready to use.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the index_name variable after Step 2?
A"new-index"
B"my-index"
Cundefined
Dnull
💡 Hint
Check variable_tracker row for 'index_name' after Step 2 column.
At which step does Elasticsearch confirm the index creation?
AStep 4
BStep 2
CStep 3
DStep 5
💡 Hint
Look at execution_table response column for acknowledgment.
If you omit the mappings, what would change in the execution flow?
AIndex creation would fail at Step 4
BSettings would be ignored
CStep 3 would be skipped, and index created with default mappings
DResponse would be negative
💡 Hint
Mappings are optional; see how Step 3 prepares mappings before creation.
Concept Snapshot
Creating an index in Elasticsearch:
- Use PUT /index-name
- Define settings (e.g., shards)
- Define mappings (field types)
- Send request
- Receive acknowledgment
- Index ready for data
Full Transcript
To create an index in Elasticsearch, you start by choosing a name for your index. Then you define settings like the number of shards and mappings that describe the fields and their types. Next, you send a PUT request with this information to Elasticsearch. Elasticsearch processes the request and responds with an acknowledgment if successful. After that, the index is ready to store documents. This process ensures your data is organized and searchable as you want.

Practice

(1/5)
1. What is the main purpose of creating an index in Elasticsearch?
easy
A. To encrypt data for security
B. To delete data permanently
C. To backup data automatically
D. To organize data for fast searching

Solution

  1. Step 1: Understand the role of an index

    An index in Elasticsearch is like a folder that organizes documents to make searching fast and efficient.
  2. Step 2: Compare options with index purpose

    Deleting, backing up, or encrypting data are not the main functions of an index.
  3. Final Answer:

    To organize data for fast searching -> Option D
  4. Quick Check:

    Index = Organize data for search [OK]
Hint: Index means organizing data for quick search [OK]
Common Mistakes:
  • Confusing index with backup or encryption
  • Thinking index deletes data
  • Assuming index automatically secures data
2. Which is the correct syntax to create an index named products in Elasticsearch?
easy
A. PUT /products
B. POST /products
C. GET /products
D. DELETE /products

Solution

  1. Step 1: Recall HTTP methods for index creation

    Elasticsearch uses the PUT method to create an index with a specific name.
  2. Step 2: Match method with index name

    PUT /products correctly creates the index named 'products'. POST is used for adding documents, GET for retrieving, DELETE for removing.
  3. Final Answer:

    PUT /products -> Option A
  4. Quick Check:

    PUT creates index [OK]
Hint: Use PUT to create an index by name [OK]
Common Mistakes:
  • Using POST instead of PUT for index creation
  • Confusing GET with creation
  • Trying DELETE to create index
3. Given this request to create an index:
{
  "settings": {"number_of_shards": 1},
  "mappings": {
    "properties": {
      "name": {"type": "text"},
      "price": {"type": "float"}
    }
  }
}

What will be the type of the price field in the index?
medium
A. keyword
B. float
C. integer
D. text

Solution

  1. Step 1: Read the mapping for the price field

    The mapping defines "price" with "type": "float" which means it stores decimal numbers.
  2. Step 2: Understand field types

    Float is a number with decimals, integer is whole number, text is for full text search, keyword is for exact matches.
  3. Final Answer:

    float -> Option B
  4. Quick Check:

    price type = float [OK]
Hint: Check mapping 'type' for field data type [OK]
Common Mistakes:
  • Confusing float with integer
  • Assuming text type for numbers
  • Mixing keyword with numeric types
4. Identify the error in this index creation request:
PUT /library
{
  "settings": {
    "number_of_shards": "two"
  },
  "mappings": {
    "properties": {
      "title": {"type": "text"}
    }
  }
}
medium
A. number_of_shards should be a number, not a string
B. title field type should be keyword, not text
C. PUT method cannot be used to create index
D. Missing index name in URL

Solution

  1. Step 1: Check the settings syntax

    number_of_shards must be a numeric value, but "two" is a string, causing an error.
  2. Step 2: Validate other parts

    Field type 'text' is valid for title, PUT is correct method, index name 'library' is present.
  3. Final Answer:

    number_of_shards should be a number, not a string -> Option A
  4. Quick Check:

    number_of_shards = number [OK]
Hint: Settings values must match expected data types [OK]
Common Mistakes:
  • Using string instead of number for shards
  • Confusing field types for text fields
  • Using wrong HTTP method for index creation
5. You want to create an index users with a field age that should only accept whole numbers and be searchable. Which mapping is correct?
hard
A. { "mappings": { "properties": { "age": { "type": "float" } } } }
B. { "mappings": { "properties": { "age": { "type": "text" } } } }
C. { "mappings": { "properties": { "age": { "type": "integer" } } } }
D. { "mappings": { "properties": { "age": { "type": "keyword" } } } }

Solution

  1. Step 1: Understand the data type needed for age

    Age is a whole number, so integer type is appropriate to store numeric whole values.
  2. Step 2: Check searchability and field types

    Text is for full text search, float allows decimals, keyword is for exact matches but not numeric operations.
  3. Final Answer:

    { "mappings": { "properties": { "age": { "type": "integer" } } } } -> Option C
  4. Quick Check:

    Whole number field = integer type [OK]
Hint: Use integer type for whole number searchable fields [OK]
Common Mistakes:
  • Using text type for numeric fields
  • Choosing float when decimals not needed
  • Using keyword for numeric data
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard