إنشاء مخطط لتفسير أفضل لطلبات البحث

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

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

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

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

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

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

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

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

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

  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.

  • تحتوي سمة typeDefinition على operatorName "genre" و"Category" 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.
  • سيؤدي "فرز الأفلام حسب تاريخ الإصدار" إلى التصفية على "نوع الكائن: الأفلام" وسيتم فرز النتائج المقدمة في تاريخ الإصدار بترتيب الفرز الافتراضي تصاعديًا.

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

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