استعلامات البحث الأساسية في Elasticsearch: دليل شامل

استعلام قائم على الكلمات الرئيسية(Match Query)

يتم استخدام استعلام المطابقة للبحث عن المستندات التي تحتوي على كلمات رئيسية محددة. سيعيد المستندات التي تحتوي على كلمة رئيسية واحدة مطابقة على الأقل.

مثال: ابحث عن منتجات بالاسم الذي يحتوي على الكلمة الأساسية laptop  في ملف products Index.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "name": "laptop"  
    }  
  }  
}  

 

يجب أن تحتوي على جميع الكلمات الرئيسية(Match Phrase Query)

يتطلب استعلام مطابقة العبارة ظهور جميع الكلمات الأساسية في الاستعلام بشكل متتالي وبالترتيب الصحيح داخل نص المستند.

مثال: ابحث عن منتجات تحتوي على الوصف الذي يحتوي على العبارة HP laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase": {  
      "description": "HP laptop"  
    }  
  }  
}  

 

يجب أن يحتوي على بادئة جملة كاملة(Match Phrase Prefix Query)

استعلام مطابقة بادئة العبارة يشبه مطابقة العبارة ، لكنه يسمح بمطابقة جزئية للكلمة الرئيسية الأخيرة.

مثال: ابحث عن منتجات يبدأ الوصف بـ laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "description": "laptop"  
    }  
  }  
}  

 

استعلام مبني على مصطلح(استعلام مصطلح)

يتم استخدام استعلام المصطلح للبحث عن المستندات ذات الحقل الذي يحتوي على قيمة محددة كما هو محدد.

مثال: ابحث عن منتجات ذات category قيمة في الحقل laptop.

GET /products/_search  
{  
  "query": {  
    "term": {  
      "category": "laptop"  
    }  
  }  
}  

 

استعلام يعتمد على النطاق(Range Query)

يساعد استعلام النطاق في البحث عن مستندات ذات قيمة حقل ضمن نطاق محدد.

مثال: ابحث عن منتجات تتراوح أسعارها بين 500 و 1000.

GET /products/_search  
{  
  "query": {  
    "range": {  
      "price": {  
        "gte": 500,  
        "lte": 1000  
      }  
    }  
  }  
}  

 

استعلام عن مستوى المصطلح

تسمح استعلامات مستوى المصطلح بالبحث عن المستندات بناءً على شروط معينة مثل استعلامات Exact و Prefix و Range و Wildcard و Fuzzy.

مثال: ابحث عن المنتجات التي يبدأ الاسم بها laptop والأسعار بين 500 و 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "prefix": {  
            "name": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Full-Text استفسار

Full-Text تسمح الاستعلامات بالبحث في الحقول النصية باستخدام خوارزميات تحليل النص للعثور على كلمات أو مرادفات متشابهة.

مثال: ابحث عن منتجات تحتوي على أوصاف تحتوي على أيٍّ منهما computer  أو laptop.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "description": "computer laptop"  
    }  
  }  
}  

 

استعلام منطقي

Boolean تسمح الاستعلامات بدمج عدة استعلامات فرعية مع شروط بحث متنوعة ، مثل "يجب أن تحتوي على الكل" ، ويجب أن تحتوي على واحد على الأقل ، أو يجب ألا تحتوي على ، لتحقيق نتائج بحث دقيقة.

مثال: ابحث عن المنتجات ذات الكينونة category والأسعار laptop  بين 500 و 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "term": {  
            "category": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

هذه هي استعلامات البحث الأساسية في Elasticsearch ، جنبًا إلى جنب مع أمثلة توضيحية لكل نوع من أنواع الاستعلام. عند الاستخدام Elasticsearch ، يمكنك دمج هذه الاستعلامات للبحث عن البيانات بمرونة وفعالية.