0Pricing
Elasticsearch & Full Text Search Systems · درس

استعلامات term وmatch

تعلّم استخدام استعلامات `term` لمطابقة القيم بدقة، واستعلامات `match` لتحليل النص الكامل وحساب درجات الصلة.

استعلامات term وmatch درس مجاني في Elasticsearch & Full Text Search Systems على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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: 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!

الأسئلة الشائعة

هل درس «استعلامات term وmatch» مجاني؟

نعم — نص درس «استعلامات term وmatch» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Elasticsearch & Full Text Search Systems، انتقل إلى CoddyKit PRO. تتضمن دورة Elasticsearch & Full Text Search Systems 4 دروس في المجموع.

ماذا ستتعلم في «استعلامات term وmatch»؟

تعلّم استخدام استعلامات `term` لمطابقة القيم بدقة، واستعلامات `match` لتحليل النص الكامل وحساب درجات الصلة. تتمرن على Elasticsearch & Full Text Search Systems مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Elasticsearch & Full Text Search Systems؟

لا تُشترط خبرة سابقة. Elasticsearch & Full Text Search Systems على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «استعلامات term وmatch»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Elasticsearch & Full Text Search Systems هذا؟

نعم. كل درس في Elasticsearch & Full Text Search Systems يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى Query DSL
  2. استعلامات term وmatch
  3. دمج الاستعلامات باستخدام bool
  4. التصفية والنطاقات وسياق الاستعلام
← العودة إلى Elasticsearch & Full Text Search Systems