A Term query searches for exact matches of a term in a field. It does not analyze the search term, so it looks for the exact value as stored.
Click to reveal answer
beginner
How does a Term query differ from a Match query?
A Term query looks for exact values without analyzing the input, while a Match query analyzes the input text (like splitting words) before searching.
Click to reveal answer
beginner
Show a simple example of a Term query searching for the value "blue" in the field "color".
{
"term": {
"color": {
"value": "blue"
}
}
}
Click to reveal answer
intermediate
Can a Term query be used to search text fields that are analyzed?
No, Term queries work best on keyword or non-analyzed fields because they look for exact matches. For analyzed text fields, use Match queries.
Click to reveal answer
intermediate
What happens if you use a Term query on a text field with multiple words?
The Term query will look for the exact whole string including spaces. It won't split the words, so it may not find matches if the field is analyzed.
Click to reveal answer
What does a Term query in Elasticsearch search for?
AExact matches of a term
BAnalyzed and tokenized words
CPartial matches
DFuzzy matches
✗ Incorrect
A Term query searches for exact matches of the term without analyzing it.
Which field type is best suited for a Term query?
AKeyword or non-analyzed fields
BAnalyzed text fields
CNumeric fields only
DDate fields only
✗ Incorrect
Term queries work best on keyword or non-analyzed fields because they look for exact values.
What will happen if you use a Term query on a text field with the value "New York"?
AIt will find documents containing "New" or "York"
BIt will analyze and split the phrase before searching
CIt will find documents with the exact phrase "New York"
DIt will not find any documents
✗ Incorrect
On an analyzed text field, "New York" is tokenized into separate terms (e.g., "new", "york"). A term query looks for the exact unanalyzed term "New York", which doesn't exist in the index.
Which query should you use instead of Term query for full-text search?
ARange query
BMatch query
CTerm query
DExists query
✗ Incorrect
Match query analyzes the text and is better for full-text search.
Is the Term query case sensitive?
ANo, it ignores case
BOnly for numeric fields
CYes, it matches exact case
DDepends on the analyzer
✗ Incorrect
Term query matches the exact term including case.
Explain what a Term query is and when you would use it in Elasticsearch.
Think about searching for exact values like IDs or keywords.
You got /5 concepts.
Describe the difference between Term query and Match query in Elasticsearch.
Consider how the input text is treated before searching.
You got /4 concepts.
Practice
(1/5)
1. What does a term query in Elasticsearch do?
easy
A. Analyzes and breaks the search term into tokens
B. Finds exact matches of the given term in the data
C. Finds documents with terms similar to the search term
D. Sorts documents based on the term frequency
Solution
Step 1: Understand the purpose of term query
A term query searches for exact matches without analyzing the search term.
Step 2: Compare options with term query behavior
Only Finds exact matches of the given term in the data describes exact matching, which is the core of term query.
Final Answer:
Finds exact matches of the given term in the data -> Option B
Quick Check:
Term query = exact match [OK]
Hint: Term query matches exactly, no analysis or tokenizing [OK]
Common Mistakes:
Confusing term query with match query that analyzes text
Thinking term query sorts results
Assuming term query finds similar or partial matches
2. Which of the following is the correct syntax for a term query in Elasticsearch?
easy
A. { "terms": { "user": ["kimchy"] } }
B. { "match": { "user": "kimchy" } }
C. { "term_query": { "user": "kimchy" } }
D. { "term": { "user": "kimchy" } }
Solution
Step 1: Identify correct term query syntax
The term query uses the key "term" with a field and exact value.
Step 2: Check each option
{ "term": { "user": "kimchy" } } matches the correct syntax. { "match": { "user": "kimchy" } } is a match query, C is invalid, D is a terms query (plural) for multiple values.
Hint: Term query uses "term" key with field and exact value [OK]
Common Mistakes:
Using "match" instead of "term" for exact match
Confusing "term" with "terms" for single value
Adding extra keys like "term_query" which is invalid
3. Given this Elasticsearch query:
{ "query": { "term": { "status": "active" } } }
What documents will this query return?
medium
A. Documents where the status field exactly equals "active"
B. Documents where the status field contains the word "active" anywhere
C. Documents where the status field starts with "active"
D. Documents where the status field is analyzed and matches "active"
Solution
Step 1: Understand term query behavior on field
The term query matches documents where the field value exactly equals the given term without analysis.
Step 2: Analyze each option
Only Documents where the status field exactly equals "active" correctly describes exact equality. Others describe partial or analyzed matches which term query does not do.
Final Answer:
Documents where the status field exactly equals "active" -> Option A
Quick Check:
Term query = exact field value match [OK]
Hint: Term query matches exact field value only [OK]
Common Mistakes:
Thinking term query matches partial or analyzed text
Assuming term query matches prefixes or substrings
Confusing term query with match query behavior
4. You wrote this term query but it returns no results:
{ "query": { "term": { "user": "Kimchy" } } }
Your data has the user field stored as lowercase "kimchy". What is the problem?
medium
A. Term query is case sensitive and "Kimchy" does not match "kimchy"
B. The term query syntax is incorrect
C. The user field is missing in the documents
D. Term query analyzes the term and changes case
Solution
Step 1: Understand term query case sensitivity
Term query matches exact terms and is case sensitive, so "Kimchy" does not match "kimchy".
Step 2: Check other options
Syntax is correct, field exists, and term query does not analyze or change case.
Final Answer:
Term query is case sensitive and "Kimchy" does not match "kimchy" -> Option A
Quick Check:
Term query = exact case match [OK]
Hint: Term query matches exact case; check letter casing [OK]
Common Mistakes:
Assuming term query ignores case
Thinking syntax error causes no results
Believing term query analyzes or lowercases terms
5. You want to find documents where the tags field contains exactly the term urgent. The tags field is an array of keywords. Which query is best to use?
hard
A. { "match": { "tags": "urgent" } }
B. { "terms": { "tags": "urgent" } }
C. { "term": { "tags": "urgent" } }
D. { "term": { "tags.keyword": "urgent" } }
Solution
Step 1: Understand term query on array fields
Term query matches exact terms in arrays, so it works directly on the tags field.
Step 2: Evaluate other options
Match query analyzes text (not exact). Terms query expects multiple values to match any. Using tags.keyword is unnecessary if tags is keyword type.
Final Answer:
{ "term": { "tags": "urgent" } } -> Option C
Quick Check:
Term query matches exact term in array [OK]
Hint: Use term query for exact keyword in array fields [OK]
Common Mistakes:
Using match query which analyzes and may not match exactly
Using terms query incorrectly for single term
Confusing field type and using .keyword unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.