تخصيص تخطيطات الحقول
تعمّق في تعريف تخطيطات صريحة لأنواع مختلفة من الحقول، بما في ذلك حقول النص والكلمات المفتاحية والحقول الرقمية والتاريخية والمنطقية.
تخصيص تخطيطات الحقول درس مجاني في Elasticsearch & Full Text Search Systems على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Elasticsearch & Full Text Search Systems، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Elasticsearch & Full Text Search Systems 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Why Customize Mappings?
Elasticsearch is smart! It often guesses your data types when you index a document (this is called dynamic mapping). But sometimes, you need more precise control.
Explicit mappings let you define exactly how each field in your documents should be stored and indexed. This is crucial for optimal search behavior, efficient storage, and accurate aggregations.
Defining Your Index's Blueprint
A mapping acts like a schema for your index. You typically define it when you create a new index. It lives within the "mappings" object in your index creation request.
Here's the basic structure:
PUT /my_new_index
{
"mappings": {
"properties": {
"your_field_name": {
"type": "field_type_here"
}
}
}
}The "properties" object holds all your field definitions.
The 'text' Field Type
The text field type is designed for full-text search. Think of blog post content, product descriptions, or comments.
When you index data into a text field, Elasticsearch "analyzes" it:
- Breaks it into individual words (tokens).
- Converts words to lowercase.
- Removes common words (stop words) if configured.
This process makes text highly searchable but means it's not suitable for exact matching, filtering, or sorting.
The 'keyword' Field Type
The keyword field type is for exact values that should remain as-is, without analysis. Use it when you need precise matching, filtering, or sorting.
Examples of data suitable for keyword fields:
- Product IDs (e.g., "PROD-123")
- Tags (e.g., "new_arrival")
- Usernames (e.g., "john_doe")
- Status codes (e.g., "active", "pending")
keyword fields are very efficient for aggregations and exact filters.
'text' vs. 'keyword' Example
Let's illustrate the difference. Imagine indexing a blog post with a title and a tag:
PUT /my_blog_posts
{
"mappings": {
"properties": {
"title": { "type": "text" },
"tag": { "type": "keyword" }
}
}
}Searching for "quick brown" in title would find "The quick brown fox". Searching for "quick brown" in tag would only match if the tag was *exactly* "quick brown".
Numeric Field Types
Elasticsearch provides various numeric types to store whole numbers and decimals efficiently. Choosing the right type saves space and optimizes query performance.
- Whole Numbers:
long,integer,short,byte. Useintegerfor age,longfor large IDs. - Decimal Numbers:
double,float,half_float,scaled_float. Usefloatordoublefor prices or measurements.
For example, "age": { "type": "integer" }.
Date Field Type
The date field type is used for storing dates and times. Elasticsearch supports many standard date formats by default, like ISO 8601.
You can also define a custom format if your dates are in a specific pattern:
"publish_date": {
"type": "date",
"format": "yyyy/MM/dd HH:mm:ss||yyyy/MM/dd"
}Dates are internally stored as milliseconds since the epoch, which allows for efficient range queries and sorting.
Boolean Field Type
The boolean field type is simple and efficient for storing true or false values. It's perfect for binary flags or status indicators.
For example, to indicate if a product is currently available:
"is_available": {
"type": "boolean"
}Elasticsearch accepts various representations for true/false, such as "true", "false", "T", "F", "on", "off", "yes", "no", "1", "0".
A Full Custom Mapping Example
Let's combine what we've learned to create a comprehensive mapping for a typical e-commerce product index:
PUT /products_catalog
{
"mappings": {
"properties": {
"product_id": { "type": "keyword" },
"name": { "type": "text" },
"description": { "type": "text" },
"price": { "type": "float" },
"stock_quantity": { "type": "integer" },
"category": { "type": "keyword" },
"release_date": { "type": "date", "format": "yyyy-MM-dd" },
"is_featured": { "type": "boolean" }
}
}
}Mapping Quiz
A field named "order_id" stores unique transaction identifiers like "TXN-2023-007". You need to be able to filter and sort orders by this ID precisely. Which field type is most appropriate?
Recap: Custom Mappings
Great job! You've taken a deep dive into explicitly defining field mappings in Elasticsearch.
We covered:
- Why custom mappings are essential for precise control.
- The basic structure for defining index mappings.
- Key field types:
text,keyword,numeric,date, andboolean. - How to choose the right type for your specific data needs.
Customizing mappings is a fundamental skill for building efficient and powerful search applications!
الأسئلة الشائعة
هل درس «تخصيص تخطيطات الحقول» مجاني؟
نعم — نص درس «تخصيص تخطيطات الحقول» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Elasticsearch & Full Text Search Systems، انتقل إلى CoddyKit PRO. تتضمن دورة Elasticsearch & Full Text Search Systems 4 دروس في المجموع.
ماذا ستتعلم في «تخصيص تخطيطات الحقول»؟
تعمّق في تعريف تخطيطات صريحة لأنواع مختلفة من الحقول، بما في ذلك حقول النص والكلمات المفتاحية والحقول الرقمية والتاريخية والمنطقية. تتمرن على Elasticsearch & Full Text Search Systems مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Elasticsearch & Full Text Search Systems؟
لا تُشترط خبرة سابقة. Elasticsearch & Full Text Search Systems على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «تخصيص تخطيطات الحقول»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Elasticsearch & Full Text Search Systems هذا؟
نعم. كل درس في Elasticsearch & Full Text Search Systems يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تخصيص تخطيطات الحقول
- التخطيطات الديناميكية مقابل الصريحة
- قوالب الفهارس والأسماء المستعارة
- أنواع الحقول المتداخلة والكائنية