إنشاء مخطّط لتفسير الطلبات على النحو الأمثل

تفسّر ميزة تفسير طلب البحث في Cloud Search تلقائيًا عوامل التشغيل والفلاتر في طلب بحث المستخدم، وتحوّل هذه العناصر إلى طلب بحث منظَّم يستند إلى عوامل التشغيل. تستخدم عملية تفسير طلب البحث عوامل محددة في المخطط، بالإضافة إلى المستندات المفهرسة، وذلك لتحديد معنى طلب البحث الذي أجراه المستخدم. تتيح هذه الميزة للمستخدم البحث باستخدام كلمات رئيسية قليلة، مع إمكانية الحصول على نتائج دقيقة.

تعتمد النتائج الفعلية المعروضة للمستخدم على مدى صحة تفسير طلب البحث. تستند الثقة إلى عدة عوامل، بما في ذلك موضع ظهور سلاسل طلب البحث في المستندات المفهرسة. يؤدي ظهور سلسلة، مثل اسم الممثل "توم هانكس"، بشكل متسق في حقل مخطط يُسمى actors إلى زيادة مستوى الثقة. قد يؤدي ظهور السلسلة نفسها ("Tom Hanks") ضمن فقرة بدلاً من حقل مخطط إلى انخفاض مستوى الثقة. في حال توفّر ثقة عالية، لن تظهر للمستخدم سوى النتائج المستندة إلى تفسير طلب البحث. في حال انخفاض مستوى الثقة، يتم دمج النتائج المستندة إلى تفسير طلب البحث مع نتائج البحث العادية عن كلمات رئيسية.

مثال على تفسير طلب البحث

لنفترض أنّ لديك مصدر بيانات، مثل قاعدة بيانات، يحتوي على معلومات حول الأفلام. تعرض "الشكل 1" نموذجًا لطلب بحث والتفسير الناتج عنه.

نظرة عامة على تفسير طلب البحث
الشكل 1. تفسير طلب البحث

بالنظر إلى طلب البحث النموذجي هذا، يتم تنفيذ ما يلي عند تفسير طلب البحث:

  • يحلّل المخطط ويحدّد أنّ العناصر الأعلى مستوى في مصدر البيانات مصنّفة على أنّها objecttype:movies. تدرك ميزة "تفسير الطلبات" الآن أنّ "الأفلام" في طلب البحث هي نوع عنصر.

  • يفحص المستندات في مصدر البيانات، بالتزامن مع المخطط، لتحديد موضع ظهور السلسلة "action". إذا كانت السلسلة تظهر بشكل أساسي في حقل مصدر بيانات "النوع" معيّن، يكون تفسير الاستعلام واثقًا من أنّ "أكشن" هي قيمة سمة للسمة "النوع" كما هو محدّد في المخطط. إذا كان السلسلة النصية تظهر بشكل أساسي في سياق فقرات المحتوى، ينخفض مستوى الثقة في تفسير طلب البحث.

تفسير طلب البحث الناتج هو:

  actor:tom hanks genre:action objecttype:movies

يتم تفعيل ميزة "تفسير طلبات البحث" تلقائيًا لجميع عملاء Cloud Search بدون الحاجة إلى اتّخاذ أي إجراءات إضافية. ومع ذلك، للحصول على أفضل تفسير للاستعلام، عليك تنظيم المخطط وفقًا للتعليمات الواردة في هذا المستند.

تنظيم المخطط لتسهيل تفسير طلبات البحث

عليك تنظيم المخطط الخاص بك لضمان الاستفادة من ميزة "تفسير طلب البحث".

تفعيل تفسيرات الاسم المعروض

تستفيد ميزة "تفسير طلب البحث" في Cloud Search من objectDefinitions وpropertyDefinitions في مخطط لتفسير طلب بحث المستخدم وتحسين النتائج. لتحقيق أقصى استفادة من عناصر المخطط هذه، عليك إنشاء أسماء عرض بديهية باستخدام displayLabel لأسماء السمات وobjectDisplayLabel لأسماء الكائنات وoperatorName للعوامل.

يعرض المخطط التالي أسماء عرض بديهية لكائن فيلم:

{
  "objectDefinitions": [
    {
      "name": "movie",
        "options": {
          "displayOptions": {
          "objectDisplayLabel": "Films"
        }
        ...
      },
      "propertyDefinitions": [
        {
          "name": "genre",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "textPropertyOptions": {
          "retrievalImportance": { "importance": "HIGHEST" },
          "operatorOptions": {
            "operatorName": "genre"
          }
        },
        "displayOptions": {
          "displayLabel": "Category"
        }
      },
      ...
      ]
    }
  ]
}

في المثال السابق:

  • يتضمّن تعريف عنصر الفيلم objectDisplayLabel "فيلم".

  • يحتوي تعريف السمة "النوع" على operatorName "النوع" وdisplayLabel "الفئة".

تتيح أسماء العرض هذه لخدمة Cloud Search تقديم التفسيرات التالية لطلبات البحث:

  • يتم تفسير عبارات مثل "أفلام الحركة" أو "أفلام من نوع الحركة" أو "أفلام الحركة" على أنّها genre:action object:movies.
  • يتم تفسير عبارة "أفلام من نوع الحركة أو الإثارة" على النحو التالي: objecttype:movies genre:(action OR thriller).
  • يتم تفسير "فيلم حركة" أو "أفلام حركة" على النحو التالي: genre:action objecttype:movies.
  • يتم تفسير "أفلام الفئة الكوميدية" على أنّها genre:comedy objecttype:movies.

تفعيل تفسيرات التاريخ والأرقام والترتيب

يجب تحديد lessThanOperatorName وgreaterThanOperatorName المحدّدتَين في IntegerOperatorOptions لجميع السمات التي تتضمّن تواريخ وأرقامًا. تتيح هذه الإعدادات تفسيرات تلقائية للتاريخ والأرقام. بالإضافة إلى ذلك، لتفعيل تفسيرات الترتيب، اضبط الخيار isSortable للخصائص الرقمية وخصائص التاريخ. يوضّح المخطط التالي كيفية تفعيل هذه الخيارات.

{
  "objectDefinitions": [
    {
      "options": {
        "displayOptions": {
          "objectDisplayLabel": "Films"
        }
      },
      "propertyDefinitions": [
        {
          "name": "runtime",
          "isReturnable": true,
          "isSortable": true,
          "integerPropertyOptions": {
            "orderedRanking": "DESCENDING",
            "minimumValue": {
              "value": 10
            },
            "maximumValue": {
              "value": 500
            },
            "operatorOptions": {
              "operatorName": "runtime",
              "lessThanOperatorName": "runtimelessthan",
              "greaterThanOperatorName": "runtimegreaterthan"
            }
          },
          "displayOptions": {
            "displayLabel": "Length"
          }
        },
        {
          "name": "releasedate",
          "isReturnable": true,
          "isSortable": true,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "releasedate",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          }
        }
      ]
    }
  ]
}

في المثال السابق:

  • تشير السمة الرقمية runtime إلى مدة الفيلم. تم ضبط runtimelessthan وruntimegreaterthan لهذا الموقع.
  • تشير السمة "التاريخ" releaseDate إلى تاريخ إصدار الفيلم في صالات العرض. تم ضبط السمتَين releasedbefore وreleasedafter لهذا الموقع الإلكتروني.

تتيح هذه الإعدادات لخدمة Cloud Search إجراء تفسيرات طلب البحث التالية:

  • بافتراض أنّ العام هو 2019، يتم تفسير عبارة "الأفلام التي تم إصدارها هذا العام" على النحو التالي: objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31.
  • بافتراض أنّ الأسبوع هو الأسبوع الثالث من شهر آذار (مارس)، سيتم تفسير "الأفلام التي تم إصدارها الأسبوع الماضي" على النحو التالي: objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
  • يتم تفسير "الأفلام التي تقل مدتها عن 90 دقيقة" على أنّها objjecttype: movies runtimelessthan:90.
  • بافتراض أنّ العام هو 2019، يتم تفسير "الأفلام التي تم إصدارها هذا العام والتي تزيد مدتها عن 120 دقيقة" على النحو التالي: releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120.
  • سيؤدي طلب "ترتيب الأفلام حسب تاريخ الإصدار" إلى فلترة النتائج حسب "objecttype: movies"، وسيتم ترتيب النتائج المعروضة حسب تاريخ الإصدار مع ترتيب تصاعدي تلقائي.

تفعيل تفسير العوامل المحجوزة

يمكنك أيضًا استخدام عوامل التشغيل المحجوزة المضمّنة type أو before أو after أو objecttype لتحسين تفسير طلب البحث. عند فهرسة مستند، اتّبِع الخطوات التالية:

  1. املأ الحقل updateTime في ItemMetadata لاستخدام عاملَي التشغيل before وafter. تتيح هذه الإعدادات لخدمة Cloud Search إجراء تفسيرات الاستعلامات التالية:

    • سيؤدي البحث عن "أفلام من الأسبوع الماضي" إلى عرض جميع الأفلام التي تم تعديلها في الفهرس خلال الأسبوع السابق.
    • ستعرض عبارة البحث "الأفلام قبل يناير 2019" كل الأفلام التي تمت فهرستها قبل يناير 2019.
  2. املأ الحقل mimeType في ItemMetadata لاستخدام ميزة الرصد التلقائي للنوع. سيؤدي طلب البحث "أفلام أكشن" إلى عرض جميع مستندات أفلام الأكشن التي يكون نوع MIME الخاص بها application/mp4 أو application/mpeg4 أو application/x-shockwave-flash أو video/ أو application/vnd.google-apps.video.

القيود المفروضة على تفسير الطلبات

تخضع ميزة "تفسير الطلب" للقيود التالية.

  • لا يعمل تفسير طلب البحث إلا مع ملفات ACL لمصادر البيانات التالية:
    • جميع المستندات متاحة للجميع في النطاق (يمكن للجميع في النطاق الوصول إليها).
    • جميع المستندات متاحة للجميع في مصدر البيانات (كل من لديه إذن الوصول إلى قائمة التحكّم بالوصول الخاصة بمصدر البيانات).
    • معظم المستندات في مصدر البيانات لها قائمة التحكّم بالوصول نفسها (جميع المستندات ترث قائمة التحكّم بالوصول من عنصر الحاوية نفسه) بدون تحديد أي قارئين إضافيين.
  • إذا كان هناك عوامل تشغيل متعددة للمخطط لها القيمة نفسها، يعتمد تفسير هذه القيمة على نية عامل التشغيل في طلب البحث على عامل الثقة الإجمالي الذي يعرضه نظام تفسير طلب البحث. على سبيل المثال، لنفترض أنّ لديك السمتَين priority وseverity مع أسماء عوامل التشغيل نفسها المحدّدة في المخطط. لنفترض أنّ كلا العاملَين يمكن أن يحصلا على القيم 0 أو 1 أو 2 أو 3. في هذا المثال، يمكن أن يشير "0" في طلب بحث إلى قيمة عامل التشغيل لكل من priority أو severity. تكون هذه القيم غير واضحة ويكون مستوى الثقة أقل.
  • بشكلٍ تلقائي، يؤدي تفسير طلب البحث في Cloud Search إلى تحويل قيم الحقول إلى أحرف صغيرة عند تفسير طلب البحث، باستثناء عوامل تشغيل النصوص المحدّدة باستخدام خيارات exactMatchWithOperator.
  • لا يتوفّر عامل التشغيل source في طلبات البحث.
  • لا يتم تفسير طلبات البحث التي تجمع بين عبارات مستندة إلى عوامل تشغيل وعبارات نصية حرة. على سبيل المثال، لن يتم قبول طلب البحث "p0 priority cases severity:s0" لأنّ "p0 priority cases" عبارة عن مصطلح نصي حر، بينما "severity:s0" عبارة عن مصطلح مستند إلى عامل تشغيل.
  • تدمج استراتيجية تفسير طلب البحث دائمًا النتائج المفسَّرة مع النتائج العادية (غير المفسَّرة والمرتّبة حسب الصلة). ولا يستبدل النتائج على الصفحة بالكامل.