English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

API البحث في Elasticsearch

يستخدم هذا الـ API للبحث في محتوى Elasticsearch. يمكن للمستخدم إجراء بحث عن طريق إرسال طلب GET يحتوي على سلسلة استعلام كمعامل أو يمكن نشر استعلام في جسم الطلب.

عدد متعدد من المؤشرات

Elasticsearch يسمح لنا بالبحث في جميع المؤشرات أو بعض المؤشرات المحددة الموجودة.

GET /_all/_search?q=city:paprola

عندما نن�行 الكود المذكور أعلاه، نحصل على الاستجابة التالية-

{
   "took": 33,
   "timed_out": false,
   "_shards": {
      "total": 7,
      "successful": 7,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": {
         "value": 1,
         "relation": "eq"
      },
      "max_score": 0.9808292,
      "hits": [
         {
            "_index": "schools",
            "_type": "school",
            "_id": "5",
            "_score": 0.9808292,
            "_source": {
               "name": "Central School",
               "description": "CBSE Affiliation",
               "street": "Nagan",
               "city": "paprola",
               "state": "HP",
               "zip": "176115",
               "location": [
                  31.8955385,
                  76.8380405
               ],
               "fees": 2200,
               "tags": [
                  "Senior Secondary",
                  "beautiful campus"
               ],
               "rating": "3.3"
            }
         }
      ]
   }
}

البحث عبر URI

يمكن استخدام معرف الموارد الموحدة (URI) لنقل العديد من المعاملات في عملية البحث

الترقيمالمعامل وشرحها
1

Q

يستخدم هذا المعامل لتعريف سلسلة البحث

2

lenient

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

3

fields

يستخدم هذا المعامل لتعريف سلسلة البحث

4

sort

يمكننا استخدام هذا المعامل للحصول على نتائج مرتبة، والقيم الممكنة هي fieldName, fieldName:asc/ fieldName:desc

5

timeout

يمكننا استخدام هذا المعامل لتحديد وقت البحث، وسيعتمد الاستجابة فقط على النتائج التي يتم استرجاعها في هذا الوقت. لا يوجد تحديد زمني افتراضي.

6

terminate_after

يمكننا تقييد الاستجابة إلى عدد معين من الوثائق في كل شق، وسيؤدي البحث إلى التوقف مسبقًا عند الوصول إلى الشق المحدد. لا يوجد termin_after بشكل افتراضي.

7

from

النوع الأول من النتائج التي سيتم استرجاعها. القيمة الافتراضية هي 0.

8

size

انه يمثل عدد النتائج التي سيتم استرجاعها، والقيمة الافتراضية هي 10.

بحث جسم الطلب

يمكننا أيضًا استخدام DSL للبحث في جسم الطلب لتحديد البحث، وقد تم تقديم العديد من الأمثلة في الفصول السابقة. يُقدم هنا مثال من هذا النوع-

POST /schools/_search
{
   "query": {
      "query_string": {
         "query": "up"
      }
   }
}

عندما نن�行 الكود المذكور أعلاه، نحصل على الاستجابة التالية-

{
   "took": 11,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": {
         "value": 1,
         "relation": "eq"
      },
      "max_score": 0.47000363,
      "hits": [
         {
            "_index": "schools",
            "_type": "school",
            "_id": "4",
            "_score": 0.47000363,
            "_source": {
               "name": "City Best School"
               "description": "ICSE",
               "street": "West End",
               "city": "Meerut",
               "state": "UP",
               "zip": "250002",
               "location": [
                  28.9926174,
                  77.692485
               ],
               "fees": 3500,
               "tags": [
                  "fully computerized"
               ],
               "rating": "4.5"
            }
         }
      ]
   }
}