Elasticsearch & Full Text Search Systems · Pelajaran

Kueri Term dan Match

Pelajari penggunaan kueri `term` untuk pencocokan nilai yang tepat dan kueri `match` untuk analisis teks lengkap serta penilaian relevansi.

Pelajaran 2 dari 411 langkah

Kueri Term dan Match adalah pelajaran Elasticsearch & Full Text Search Systems gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Elasticsearch & Full Text Search Systems, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

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: A text field, which is analyzed (broken into words, lowercased).
  • category.keyword: A keyword field, 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:

  1. Tokenization: "powerful laptop" becomes "powerful" and "laptop".
  2. Lowercasing: "Powerful" becomes "powerful".
  3. 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:

  • term query:
    - For exact value matching.
    - Does NOT perform text analysis on query string.
    - Best for keyword fields, IDs, precise filters.
  • match query:
    - For full-text search.
    - PERFORMS text analysis on query string.
    - Best for text fields, 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.

  • term is for surgical, exact value searches.
  • match is 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!

Gratis untuk memulai

Belajar Elasticsearch & Full Text Search Systems dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kueri Term dan Match” gratis?

Ya — teks lengkap “Kueri Term dan Match” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Elasticsearch & Full Text Search Systems, upgrade ke CoddyKit PRO. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kueri Term dan Match”?

Pelajari penggunaan kueri `term` untuk pencocokan nilai yang tepat dan kueri `match` untuk analisis teks lengkap serta penilaian relevansi. Kamu berlatih Elasticsearch & Full Text Search Systems dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Elasticsearch & Full Text Search Systems?

Tidak diperlukan pengalaman sebelumnya. Elasticsearch & Full Text Search Systems di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Kueri Term dan Match” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Elasticsearch & Full Text Search Systems ini?

Ya. Setiap pelajaran Elasticsearch & Full Text Search Systems menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pengantar Query DSL
  2. Kueri Term dan Match
  3. Menggabungkan Kueri dengan Bool
  4. Penyaringan, Rentang, dan Konteks Kueri
← Kembali ke Elasticsearch & Full Text Search Systems