Bird
Raised Fist0
Elasticsearchquery~20 mins

Standard analyzer in Elasticsearch - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Standard Analyzer Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of the standard analyzer on the text?
Given the text "The Quick Brown Foxes jumped over the lazy dogs.", what tokens does the standard analyzer produce?
Elasticsearch
{
  "analyze": {
    "analyzer": "standard",
    "text": "The Quick Brown Foxes jumped over the lazy dogs."
  }
}
A["the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
B["The", "Quick", "Brown", "Foxes", "jumped", "over", "the", "lazy", "dogs"]
C["the", "quick", "brown", "foxes", "jumped", "over", "lazy", "dogs"]
D["the", "quick", "brown", "foxes", "jumped", "over", "the", "lazy", "dogs"]
Attempts:
2 left
💡 Hint
The standard analyzer lowercases all tokens and splits on punctuation and whitespace.
🧠 Conceptual
intermediate
1:30remaining
Which feature is NOT part of the standard analyzer?
Select the feature that the standard analyzer does NOT perform on input text.
ARemoving English stop words by default
BLowercasing all tokens
CSplitting text on punctuation and whitespace
DTokenizing text into terms
Attempts:
2 left
💡 Hint
Think about whether the standard analyzer removes common words like "the" or "and".
🔧 Debug
advanced
2:00remaining
Why does this standard analyzer output include the token "can't" split into two tokens?
Given the text "I can't do this." analyzed with the standard analyzer, the output tokens are ["i", "can't", "do", "this"]. Why is "can't" not split into "can" and "t"?
Elasticsearch
{
  "analyze": {
    "analyzer": "standard",
    "text": "I can't do this."
  }
}
AThe standard analyzer treats apostrophes inside words as part of the token.
BThe standard analyzer removes apostrophes, so "can't" becomes "cant".
CThe standard analyzer splits tokens on apostrophes, so "can't" becomes "can" and "t".
DThe standard analyzer converts contractions into full words automatically.
Attempts:
2 left
💡 Hint
Consider how the standard analyzer treats punctuation inside words.
📝 Syntax
advanced
1:30remaining
What error occurs with this standard analyzer JSON request?
Identify the error in this JSON request to analyze text with the standard analyzer:
{
  "analyze": {
    "analyzer": "standard",
    "text": ["Hello", "world"]
  }
}
ANo error, the request is valid and returns tokens for both words
BRuntimeError: Analyzer 'standard' does not support arrays
CTypeError: 'text' field must be a string, not an array
DSyntaxError: JSON array not allowed for 'text' field
Attempts:
2 left
💡 Hint
Check the expected data type for the 'text' field in the analyze API.
🚀 Application
expert
2:30remaining
How many tokens does the standard analyzer produce for this text?
Analyze the text "E-mail addresses like test@example.com are tokenized." with the standard analyzer. How many tokens are produced?
Elasticsearch
{
  "analyze": {
    "analyzer": "standard",
    "text": "E-mail addresses like test@example.com are tokenized."
  }
}
A7
B8
C9
D6
Attempts:
2 left
💡 Hint
The standard analyzer keeps hyphenated words like 'E-mail' as a single token but splits emails on punctuation like @ and ..

Practice

(1/5)
1. What does the standard analyzer in Elasticsearch do by default?
easy
A. Keeps punctuation and case intact
B. Breaks text into words, ignores punctuation and case
C. Only analyzes numbers and symbols
D. Removes all spaces and joins words

Solution

  1. Step 1: Understand the role of the standard analyzer

    The standard analyzer splits text into simple words by removing punctuation and ignoring case differences.
  2. Step 2: Recall default behavior in Elasticsearch

    It is the default analyzer and is designed for general text processing, making text lowercase and splitting on punctuation.
  3. Final Answer:

    Breaks text into words, ignores punctuation and case -> Option B
  4. Quick Check:

    Standard analyzer = splits words, ignores punctuation and case [OK]
Hint: Standard analyzer splits words and lowercases text [OK]
Common Mistakes:
  • Thinking it keeps punctuation
  • Assuming it preserves case
  • Believing it only analyzes numbers
2. Which of the following is the correct way to specify the standard analyzer in an Elasticsearch index mapping?
easy
A. "analyzer": "whitespace"
B. "analyzer": "simple"
C. "analyzer": "keyword"
D. "analyzer": "standard"

Solution

  1. Step 1: Identify the analyzer name for standard analyzer

    The standard analyzer is referenced by the string "standard" in Elasticsearch mappings.
  2. Step 2: Compare with other analyzer names

    Other analyzers like "simple", "keyword", and "whitespace" are different and not the standard analyzer.
  3. Final Answer:

    "analyzer": "standard" -> Option D
  4. Quick Check:

    Standard analyzer name = "standard" [OK]
Hint: Use "analyzer": "standard" to apply standard analyzer [OK]
Common Mistakes:
  • Using other analyzer names by mistake
  • Forgetting quotes around analyzer name
  • Confusing standard with simple analyzer
3. Given the text "Hello, World! Elasticsearch 7.10", what tokens will the standard analyzer produce?
medium
A. ["Hello", "World", "Elasticsearch", "7.10"]
B. ["hello,", "world!", "elasticsearch", "7.10"]
C. ["hello", "world", "elasticsearch", "7", "10"]
D. ["hello world elasticsearch 7 10"]

Solution

  1. Step 1: Apply standard analyzer tokenization rules

    The standard analyzer lowercases text and splits on punctuation and whitespace, so "Hello," becomes "hello", "World!" becomes "world".
  2. Step 2: Analyze numbers and punctuation

    Numbers separated by punctuation like "7.10" are split into "7" and "10" tokens.
  3. Final Answer:

    ["hello", "world", "elasticsearch", "7", "10"] -> Option C
  4. Quick Check:

    Standard analyzer tokens = lowercase words split on punctuation [OK]
Hint: Standard analyzer lowercases and splits on punctuation [OK]
Common Mistakes:
  • Keeping punctuation attached to words
  • Not splitting numbers on dots
  • Preserving original case
4. You wrote this mapping snippet but your field is not analyzed as expected:
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "standard_analyzer"
      }
    }
  }
}
What is the error?
medium
A. Analyzer name should be "standard", not "standard_analyzer"
B. Field type should be "keyword" instead of "text"
C. Analyzer must be defined under "settings", not "mappings"
D. Missing "index": true property

Solution

  1. Step 1: Check the analyzer name used in mapping

    The standard analyzer is named "standard". Using "standard_analyzer" is incorrect and causes the analyzer to not be found.
  2. Step 2: Verify field type and analyzer placement

    Field type "text" is correct for analyzed fields, and analyzer is correctly placed under "mappings". "index": true is default and not required.
  3. Final Answer:

    Analyzer name should be "standard", not "standard_analyzer" -> Option A
  4. Quick Check:

    Analyzer name must be exact "standard" [OK]
Hint: Use exact analyzer name "standard" in mappings [OK]
Common Mistakes:
  • Adding extra suffix to analyzer name
  • Changing field type to keyword for analyzed text
  • Misplacing analyzer in settings instead of mappings
5. You want to create a custom analyzer that uses the standard tokenizer but adds a lowercase filter and a stop word filter. Which of the following JSON snippets correctly defines this analyzer in Elasticsearch?
hard
A. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "custom", "tokenizer": "standard", "filter": ["lowercase", "stop"] } } } } }
B. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "standard", "filter": ["lowercase", "stop"] } } } } }
C. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "custom", "tokenizer": "simple", "filter": ["lowercase", "stop"] } } } } }
D. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "custom", "tokenizer": "standard", "filter": ["stop", "uppercase"] } } } } }

Solution

  1. Step 1: Define a custom analyzer with standard tokenizer

    The analyzer must have "type": "custom" and use "tokenizer": "standard" to start with the standard tokenizer.
  2. Step 2: Add lowercase and stop filters in correct order

    The filters array should include "lowercase" and "stop" filters to lowercase tokens and remove stop words.
  3. Step 3: Verify other options

    { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "standard", "filter": ["lowercase", "stop"] } } } } } uses "type": "standard" which does not allow custom filters. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "custom", "tokenizer": "simple", "filter": ["lowercase", "stop"] } } } } } uses "simple" tokenizer, not standard. { "settings": { "analysis": { "analyzer": { "custom_std": { "type": "custom", "tokenizer": "standard", "filter": ["stop", "uppercase"] } } } } } uses "uppercase" filter which is incorrect here.
  4. Final Answer:

    Custom analyzer with type custom, standard tokenizer, and filters lowercase and stop -> Option A
  5. Quick Check:

    Custom analyzer = type custom + standard tokenizer + lowercase + stop filters [OK]
Hint: Custom analyzer needs type custom and tokenizer standard [OK]
Common Mistakes:
  • Using type standard instead of custom for filters
  • Choosing wrong tokenizer like simple
  • Wrong filter order or filters like uppercase
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