Term 및 Match 쿼리
정확한 값 일치에는 `term` 쿼리를, 전문 분석과 관련도 점수 계산에는 `match` 쿼리를 사용하는 방법을 배웁니다.
Term 및 Match 쿼리은(는) CoddyKit의 무료 Elasticsearch & Full Text Search Systems 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Elasticsearch & Full Text Search Systems 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Elasticsearch & Full Text Search Systems 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Intro to Term & Match Queries
Welcome to the fundamentals of querying data in Elasticsearch! Today, we'll explore two essential query types: term and match.
Understanding their differences is crucial for effective search. We'll learn when to use each to get exactly the results you need, whether it's an exact value or a flexible full-text search.
Indexing Sample Documents
Before we query, let's index some simple documents into an index called products. We'll use these examples throughout the lesson.
Run these curl commands in your terminal (assuming Elasticsearch is running on localhost:9200):
curl -X PUT "localhost:9200/products/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Laptop Pro X1",
"category": "Electronics",
"description": "A powerful and lightweight laptop for professionals.",
"price": 1200
}'
curl -X PUT "localhost:9200/products/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Wireless Mouse",
"category": "Accessories",
"description": "Ergonomic wireless mouse with long battery life.",
"price": 25
}'
curl -X PUT "localhost:9200/products/_doc/3?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Gaming Keyboard",
"category": "Electronics",
"description": "Mechanical keyboard for intense gaming sessions.",
"price": 90
}'`term` Query: Exact Matching
The term query is used for finding exact values in a field. It looks for a precise match without any text analysis (like lowercasing or stemming).
- It's ideal for structured data like product IDs, categories, tags, or status fields.
- It works best with fields that are mapped as
keyword(non-analyzed strings) or numeric types.
`term` Query in Action
Let's find all products with the exact category "Electronics". Notice we're querying category.keyword because the default text field would be analyzed.
Try this curl command:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"term": {
"category.keyword": "Electronics"
}
}
}'Understanding .keyword
When you index a string field (like category), Elasticsearch often creates two versions by default:
category: Atextfield, which is analyzed (broken into words, lowercased).category.keyword: Akeywordfield, which is treated as a single, exact string.
The term query expects an exact match, so using the .keyword sub-field ensures your query string isn't analyzed and matches the exact stored value.
`match` Query: Full-Text Power
The match query is your go-to for full-text search. Unlike term, it's designed to be smart about text.
- It performs text analysis on your search query.
- It breaks your query string into individual terms, lowercases them, and sometimes stems them (e.g., "running" -> "run").
- It then finds documents that contain these analyzed terms, and also assigns a relevancy score.
`match` Query in Action
Let's search for products with "powerful laptop" in their description. Even if the document contains "A powerful and lightweight laptop", the match query will find it.
Try this curl command:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"description": "powerful laptop"
}
}
}'The Magic of Text Analysis
When you use a match query, Elasticsearch's text analysis process kicks in:
- Tokenization: "powerful laptop" becomes "powerful" and "laptop".
- Lowercasing: "Powerful" becomes "powerful".
- Stop Words: Common words like "a", "the" might be removed (depending on the analyzer).
This makes match queries highly flexible for natural language search, finding relevant results even with minor variations in phrasing or case.
`term` vs `match`: Key Differences
Here's a quick summary of when to use each query type:
termquery:
- For exact value matching.
- Does NOT perform text analysis on query string.
- Best forkeywordfields, IDs, precise filters.matchquery:
- For full-text search.
- PERFORMS text analysis on query string.
- Best fortextfields, search bars, descriptive content.
Query Understanding Check
Which of the following statements are true regarding term and match queries in Elasticsearch?
Recap: `term` & `match`
Great job! You've learned the fundamental difference between term and match queries.
termis for surgical, exact value searches.matchis for flexible, full-text searches leveraging powerful text analysis.
Knowing when to use each is key to building effective search experiences. Next, we'll explore how to combine these and other queries to create even more sophisticated search logic!
AI 튜터와 함께 Elasticsearch & Full Text Search Systems을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 12
- 레슨
- 48
자주 묻는 질문
“Term 및 Match 쿼리” 강의는 무료인가요?
네 — “Term 및 Match 쿼리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Elasticsearch & Full Text Search Systems 강의 전체를 잠금 해제할 수 있습니다. Elasticsearch & Full Text Search Systems 강의에는 총 4개의 강의가 포함되어 있습니다.
“Term 및 Match 쿼리”에서 뭘 배우나요?
정확한 값 일치에는 `term` 쿼리를, 전문 분석과 관련도 점수 계산에는 `match` 쿼리를 사용하는 방법을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 Elasticsearch & Full Text Search Systems을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Elasticsearch & Full Text Search Systems을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Elasticsearch & Full Text Search Systems은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“Term 및 Match 쿼리” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Elasticsearch & Full Text Search Systems 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Elasticsearch & Full Text Search Systems 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Query DSL 소개
- Term 및 Match 쿼리
- Bool을 활용한 쿼리 결합
- 필터링, 범위 및 쿼리 컨텍스트