إنشاء مخطط وتسجيله

مخطط Google Cloud Search عبارة عن هيكل JSON يحدد والكائنات والخصائص والخيارات التي سيتم استخدامها في فهرسة بياناتك والاستعلامات عنها. يقرأ "موصِّل المحتوى" البيانات من المستودع، وبناءً على المسجّل، وإنشاء البيانات وفهارسها.

يمكنك إنشاء مخطّط من خلال توفير كائن مخطط JSON لواجهة برمجة التطبيقات. ثم تسجيلها. عليك تسجيل كائن مخطط. لكل مستودع من مستودعاتك قبل أن تتمكن من فهرسة بياناتك.

يتناول هذا المستند أساسيات إنشاء المخططات. للحصول على معلومات حول كيفية لضبط المخطط لتحسين تجربة البحث، راجع تحسين جودة البحث:

إنشاء مخطط

في ما يلي قائمة بالخطوات المستخدمة لإنشاء مخطط Cloud Search:

  1. تحديد سلوك المستخدم المتوقّع
  2. إعداد مصدر بيانات
  3. إنشاء مخطّط
  4. إكمال نموذج المخطط
  5. تسجيل المخطط
  6. فهرسة بياناتك
  7. اختبار المخطط
  8. تحسين المخطط

تحديد السلوك المتوقع للمستخدم

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

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

لتحديد مخطط يعكس الأنماط السلوكية للمستخدم، يُرجى مراعاة أداء هذه المهام:

  1. قيِّم مجموعة متنوعة من طلبات البحث المطلوبة من مستخدمين مختلفين.
  2. تحديد الكائنات التي يمكن استخدامها في الاستعلامات. الكائنات منطقية مجموعات من البيانات ذات الصلة، مثل فيلم في قاعدة بيانات للأفلام.
  3. تحديد الخصائص والقيم التي يتألف منها الكائن والتي يمكن أن تكون المستخدمة في الاستعلامات. الخصائص هي السمات القابلة للفهرسة للكائن، ويمكن أن تتضمن قيمًا أولية أو كائنات أخرى. على سبيل المثال، قد يحتوي كائن الفيلم على خصائص مثل عنوان الفيلم تاريخ الإصدار كقيم أساسية. قد يحتوي كائن الفيلم أيضًا على مثل أعضاء فريق التمثيل، التي لها خصائصها الخاصة، مثل اسمك أو منصبك.
  4. حدِّد أمثلة للقيم الصالحة للسمات. القيم هي البيانات الفعلية تمت فهرستها لخاصية ما. على سبيل المثال، قد يكون عنوان فيلم واحد في قاعدة البيانات لديك "Raiders of the Lost Ark".
  5. تحديد خيارات الترتيب والترتيب التي يريدها المستخدمون. على سبيل المثال: عند الاستعلام عن الأفلام، فقد يرغب المستخدمون في الفرز حسب التسلسل الزمني والترتيب حسب تقييمات الجمهور ولا تحتاج إلى الفرز أبجديًا حسب العنوان.
  6. (اختياري) ضَع في اعتبارك ما إذا كان أحد مواقعك يمثّل موقعًا جغرافيًا أكثر تحديدًا السياق الذي قد يتم فيه تنفيذ عمليات البحث، مثل بحث المستخدمين الدور الوظيفي أو بحيث يمكن تقديم اقتراحات الإكمال التلقائي بناءً على السياق. على سبيل المثال، بالنسبة للأشخاص الذين يبحثون في قاعدة بيانات الأفلام، قد مهتمين فقط بنوع معين من الأفلام. سيحدد المستخدمون ما النوع الذي يريد أن تظهر به عمليات البحث، وربما كجزء من تجربة بك. بعد ذلك، عندما يبدأ المستخدم في كتابة استعلام عن الأفلام، الأفلام في النوع المفضل لها فقط، مثل "أفلام الحركة"، يتم اقتراحها كـ من اقتراحات الإكمال التلقائي.
  7. عمل قائمة بهذه الكائنات والخصائص وأمثلة القيم التي يمكن المستخدمة في عمليات البحث. (لمزيد من التفاصيل حول كيفية استخدام هذه القائمة، يمكنك الاطّلاع على قسم تحديد خيارات عوامل التشغيل).

إعداد مصدر البيانات

يمثل مصدر البيانات البيانات الواردة من مستودع تمت فهرسته وتخزينها في Google Cloud. للاطّلاع على تعليمات حول إعداد مصدر بيانات مراجعة إدارة مصادر البيانات التابعة لجهات خارجية

يتم عرض نتائج بحث المستخدم من مصدر البيانات. عندما ينقر مستخدم فوق نتيجة بحث، توجه خدمة Cloud Search المستخدم إلى العنصر الفعلي باستخدام عنوان URL المقدَّم في طلب الفهرسة

تحديد الكائنات

الوحدة الأساسية للبيانات في أي مخطط هي الكائن، ويسمى أيضًا "المخطط كائن"، وهو هيكل منطقي للبيانات. في قاعدة بيانات الأفلام، واحد والهيكل المنطقي للبيانات هو "فيلم". قد يكون كائن آخر هو "شخص" إلى تمثل طاقم العمل وطاقم العمل المشاركين في الفيلم.

يتضمّن كل عنصر في أي عنصر سلسلة من الخصائص أو السمات التي وصف العنصر، مثل عنوان الفيلم ومدته أو الاسم وتاريخ ميلاد الشخص. قد تشمل خصائص الجسم العنصر الأساسي القيم أو الكائنات الأخرى.

يعرض الشكل 1 الفيلم وكائنات الشخص وما يرتبط به من كائنات المواقع.

رسم لاتصالات مخطط بين الكيانات
الشكل 1. نموذج مخطّط يعرض كائنَين وكائن فرعي.

إنّ مخطّط Cloud Search هي قائمة بعبارات تعريف الكائنات المحددة في العلامة objectDefinitions. يعرض مقتطف المخطط التالي عبارات objectDefinitions للفيلم وكائنات مخطط الشخص.

{
  "objectDefinitions": [
    {
      "name": "movie",
      ...
    },
    {
      "name": "person",
      ...
    }
  ]
}

عند تعريف كائن مخطط، يمكنك تقديم name للكائن الذي يجب فريدة من نوعها بين جميع الكائنات الأخرى في المخطط. ستستخدم عادةً name قيمة تصف الكائن، مثل movie لكائن فيلم. المخطط الخدمة name كمعرّف مفتاح للعناصر القابلة للفهرسة. بالنسبة على مزيد من المعلومات حول حقل name، ويمكنك مراجعة تعريف العنصر:

تحديد خصائص العنصر

كما هو محدّد في مرجع ObjectDefinition, يكون اسم الكائن متبوعًا بمجموعة من options، وقائمة propertyDefinitions تشير رسالة الأشكال البيانية بإمكان options تتكون أيضًا من freshnessOptions أو displayOptions تشير رسالة الأشكال البيانية freshnessOptions تُستخدم هذه الإعلانات لتعديل ترتيب البحث استنادًا إلى حداثة العنصر. تشير رسالة الأشكال البيانية displayOptions تُستخدم لتحديد ما إذا كان سيتم عرض تسميات وخصائص معينة في نتائج البحث عن كائن.

تشير رسالة الأشكال البيانية propertyDefinitions حيث يمكنك تحديد خصائص أحد الكائنات، مثل عنوان الفيلم. وتاريخ الإصدار.

يعرض المقتطف التالي الكائن movie مع خاصيتين: movieTitle وreleaseDate.

{
  "objectDefinitions": [
    {
      "name": "movie",
      "propertyDefinitions": [
        {
          "name": "movieTitle",
          "isReturnable": true,
          "isWildcardSearchable": true,
          "textPropertyOptions": {
            "retrievalImportance": { "importance": "HIGHEST" },
            "operatorOptions": {
              "operatorName": "title"
            }
          },
          "displayOptions": {
            "displayLabel": "Title"
          }
        },
        {
          "name": "releaseDate",
          "isReturnable": true,
          "isSortable": true,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "released",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          },
          "displayOptions": {
            "displayLabel": "Release date"
          }
      ...
      ]
    }
  ]
}

تشير رسالة الأشكال البيانية PropertyDefinition يتضمن العناصر التالية:

  • سلسلة name.
  • قائمة بالخيارات غير المرتبطة بنوع محدّد، مثل isReturnable في السابقة المقتطف.
  • النوع والخيارات الخاصة بالنوع المرتبطة به، مثل textPropertyOptions وretrievalImportance في المقتطف السابق.
  • تصف سمة operatorOptions كيفية استخدام السمة باعتبارها سمة .
  • تمثّل هذه السمة سمة displayOptions واحدة أو أكثر، مثل displayLabel في المقتطف السابق.

يجب أن تكون السمة name فريدة داخل العنصر المضمَّن. ولكن يمكن استخدام الاسم نفسه في كائنات وكائنات فرعية أخرى. في الشكل 1، تم تحديد عنوان الفيلم وتاريخ إصداره مرتين: مرّة واحدة في الكائن movie ومرة أخرى في الكائن الفرعي filmography من كائن person. يعيد هذا المخطط استخدام الحقل movieTitle. لكي يتيح المخطط استخدام نوعين من سلوكيات البحث:

  • تعرض نتائج الأفلام عندما يبحث المستخدمون عن عنوان فيلم.
  • عرض نتائج البحث عن أشخاص عندما يبحث المستخدمون عن عنوان فيلم التي لعبها ممثل ما.

وبالمثل، يعيد المخطط استخدام الحقل releaseDate لأنه يحتوي على ما يعنيه لحقلي movieTitle.

عند تطوير مخطّطك الخاص، ضَع في اعتبارك مدى ارتباط المستودع التي تحتوي على بيانات تريد الإفصاح عنها أكثر من مرة في مخططك.

إضافة خيارات غير مرتبطة بأنواع محدّدة

تشير رسالة الأشكال البيانية PropertyDefinition تسرد خيارات وظائف البحث العامة الشائعة بين جميع المواقع بغض النظر عن نوع البيانات.

  • isReturnable: يشير إلى ما إذا كان الموقع يحدّد البيانات التي يجب في نتائج البحث عبر واجهة برمجة تطبيقات طلبات البحث. فيلم All of the Example يمكن إرجاعها. يمكن استخدام السمات غير القابلة للإرجاع للبحث. أو ترتيبها بدون عرضها للمستخدم
  • isRepeatable: يشير إلى ما إذا كان مسموحًا بعدة قيم للسمة. بالنسبة على سبيل المثال، يكون للفيلم تاريخ إصدار واحد فقط ولكن يمكن أن يكون له عدة ممثلين.
  • isSortable: يشير إلى إمكانية استخدام السمة للترتيب. هذا النمط لا يمكن أن تكون القيمة true للخصائص القابلة للتكرار. على سبيل المثال، نتائج الأفلام قد يتم فرزها حسب تاريخ الإصدار أو تقييم الجمهور.
  • isFacetable: يشير إلى إمكانية استخدام السمة لإنشاء واجهات. تُستخدم الواجهة لتحسين نتائج البحث التي يرى فيها المستخدم النتائج الأولية ثم تضيف معايير أو واجهات لتحسين تلك نتائجك. لا يمكن أن يكون هذا الخيار صحيحًا بالنسبة إلى المواقع التي يكون نوعها الكائن object يجب أن تكون السياسة isReturnable صحيحة لضبط هذا الخيار. أخيرًا، يكون هذا الخيار فقط متاحة لخصائص التعداد والمنطقية والنصية. على سبيل المثال، في نموذج المخطط لدينا، قد نجعل أن يتم التعرّف على genre وactorName وuserRating وmpaaRating للسماح لهم استخدامها للتنقيح التفاعلي لنتائج البحث.
  • isWildcardSearchable تشير إلى أنه يمكن للمستخدمين إجراء بحث حرف بدل عن لهذا الموقع. لا يتوفّر هذا الخيار إلا في الخصائص النصية. كيفية استخدام حرف البدل البحث في حقل النص على القيمة المعينة في exactMatchWithOperator. إذا تم ضبط exactMatchWithOperator على true، يتم تحويل القيمة النصية إلى رمز مميّز كقيمة بسيطة واحدة، ويتم إجراء بحث حرف بدل الذي تم إجراؤه ضده. على سبيل المثال، إذا كانت القيمة النصية هي science-fiction، استعلام حرف بدل science-* يطابقه. إذا تم ضبط exactMatchWithOperator على false، يتم تحويل القيمة النصية إلى رمز مميّز ويتم إجراء بحث حرف البدل مقابل لكل رمز مميز. على سبيل المثال، إذا كانت القيمة النصية هي "خيال علمي"، يتم استخدام حرف البدل يتطابق sci* أو fi* مع العنصر، ولكن لا يتطابق معه science-*.

وتكون جميع معاملات وظائف البحث العامة هذه قيمًا منطقية، هم لكل منها قيمة تلقائية تبلغ false ويجب ضبطها على true تنبؤي.

يعرض الجدول التالي المَعلمات المنطقية التي تم ضبطها على true. لكل خصائص الكائن movie:

الموقع isReturnable isRepeatable isSortable isFacetable isWildcardSearchable
movieTitle صحيح صحيح
releaseDate صحيح صحيح
genre صحيح صحيح صحيح
duration صحيح
actorName صحيح صحيح صحيح صحيح
userRating صحيح صحيح
mpaaRating صحيح صحيح

تم ضبط isRepeatable على true في كل من genre وactorName. لأنّ الفيلم قد ينتمي إلى أكثر من نوع أكثر من ممثل واحد لا يمكن ترتيب الخاصية إذا كانت قابلة للتكرار. أو مضمنة في كائن فرعي قابل للتكرار.

تحديد النوع

تشير رسالة الأشكال البيانية PropertyDefinition والقسم المرجعي يدرج العديد من xxPropertyOptions حيث يكون xx من نوع معين، مثل boolean. لضبط نوع بيانات الموقع، يجب تحديد كائن نوع البيانات المناسب. تحديد كائن من نوع البيانات للسمة نوع البيانات لهذه الخاصية. على سبيل المثال، ينبغي أن يؤدي تحديد يشير textPropertyOptions للسمة movieTitle إلى أنّ الفيلم العنوان من نوع النص. يعرض المقتطف التالي السمة movieTitle. مع الإعداد textPropertyOptions لنوع البيانات.

{
  "name": "movieTitle",
  "isReturnable": true,
  "isWildcardSearchable": true,
  "textPropertyOptions": {
    ...
  },
  ...
},

يمكن أن يكون للموقع نوع بيانات مرتبط واحد فقط. على سبيل المثال، في فيلمنا ، يمكن أن يكون releaseDate تاريخًا فقط (مثل 2016-01-13) أو سلسلة (مثال: January 13, 2016)، ولكن ليس كليهما.

فيما يلي كائنات نوع البيانات المستخدمة لتحديد أنواع البيانات السمات في نموذج مخطط الفيلم:

الموقع كائن نوع البيانات
movieTitle textPropertyOptions
releaseDate datePropertyOptions
genre enumPropertyOptions
duration textPropertyOptions
actorName textPropertyOptions
userRating integerPropertyOptions
mpaaRating textPropertyOptions

يعتمد نوع البيانات الذي تختاره للموقع على حالات الاستخدام المتوقّعة. في السيناريو المتخيل لمخطط الفيلم هذا، يتوقع المستخدمون إذا أردت تصنيف النتائج حسب التسلسل الزمني، تكون السمة releaseDate هي عنصر التاريخ. على سبيل المثال، إذا كانت هناك حالة استخدام متوقعة لمقارنة إصدارات ديسمبر على مدار السنوات التي تصدر فيها إصدارات كانون الثاني (يناير)، قد يكون تنسيق السلسلة مفيدًا.

ضبط الخيارات الخاصة بالنوع

تشير رسالة الأشكال البيانية PropertyDefinition وروابط قسم المراجع التي تؤدي إلى خيارات كل نوع. الأكثر تحديدًا من النوع تكون الخيارات اختيارية، باستثناء قائمة possibleValues في enumPropertyOptions بالإضافة إلى ذلك، يتيح لك الخيار orderedRanking ما يلي: ترتيب القيم بالنسبة إلى بعضها البعض. تشير رسالة الأشكال البيانية يعرض المقتطف التالي السمة movieTitle مع textPropertyOptions لضبط نوع البيانات وباستخدام الخيار الخاص بالنوع retrievalImportance.

{
  "name": "movieTitle",
  "isReturnable": true,
  "isWildcardSearchable": true,
  "textPropertyOptions": {
    "retrievalImportance": { "importance": "HIGHEST" },
    ...
  },
  ...
}

في ما يلي الخيارات الإضافية الخاصة بالنوع والمستخدَمة في نموذج المخطط:

الموقع النوع الخيارات الخاصة بالنوع
movieTitle textPropertyOptions retrievalImportance
releaseDate datePropertyOptions
genre enumPropertyOptions
duration textPropertyOptions
actorName textPropertyOptions
userRating integerPropertyOptions orderedRanking، maximumValue
mpaaRating textPropertyOptions

تحديد خيارات عامل التشغيل

بالإضافة إلى الخيارات الخاصة بالنوع، يحتوي كل نوع على مجموعة من الاختيارات operatorOptions توضّح هذه الخيارات كيفية استخدام الخاصية كسمة . يعرض المقتطف التالي السمة movieTitle مع textPropertyOptions من خلال إعداد نوع البيانات ومع الخيارات الخاصة بالنوع retrievalImportance وoperatorOptions.

{
  "name": "movieTitle",
  "isReturnable": true,
  "isWildcardSearchable": true,
  "textPropertyOptions": {
    "retrievalImportance": { "importance": "HIGHEST" },
    "operatorOptions": {
      "operatorName": "title"
    }
  },
  ...
}

يتضمّن كل operatorOptions سمة operatorName، مثل title. movieTitle اسم عامل التشغيل هو عامل تشغيل البحث الخاص بالموقع الإلكتروني. حاسمة عامل تشغيل البحث هو المعلمة الفعلية التي تتوقع أن يستخدمها المستخدمون عند تضييق البحث. فعلى سبيل المثال، للبحث عن الأفلام بناءً على عنوانها، المستخدم سيكتب title:movieName، حيث movieName هو اسم الفيلم.

لا يجب أن تكون أسماء عوامل التشغيل متطابقة مع اسم الموقع. بدلاً من ذلك، عليك استخدام أسماء عوامل تشغيل تعكس الكلمات الأكثر شيوعًا. من قِبل المستخدمين في مؤسستك على سبيل المثال، إذا كان المستخدمون يفضلون العبارة "الاسم" بدلاً من "title" لعنوان فيلم، فيجب أن يكون اسم المشغل تعيينه على "name".

يمكنك استخدام اسم عامل التشغيل نفسه لمواقع متعددة ما دامت جميع الخصائص ترمز إلى النوع نفسه. عند استخدام اسم عامل تشغيل مشترك أثناء استعلام، يتم استرداد جميع الخصائص التي تستخدم اسم عامل التشغيل هذا. على سبيل المثال: لنفترض أن كائن الفيلم يحتوي على plotSummary وplotSynopsis من المواقع ولكل من هذه المواقع operatorName من plot. بالنسبة طالما أن هاتين السمتين عبارة عن نص (textPropertyOptions)، باستخدام عامل تشغيل البحث plot لاستردادهما.

بالإضافة إلى السمة operatorName، يمكن أن تحتوي السمات القابلة للترتيب على الحقلان lessThanOperatorName وgreaterThanOperatorName في operatorOptions. يمكن للمستخدمين استخدام هذه الخيارات لإنشاء طلبات بحث بناءً على المقارنات مع التي تم إرسالها.

أخيرًا، يتضمّن textOperatorOptions الحقل exactMatchWithOperator في operatorOptions إذا كنت ضبط exactMatchWithOperator على true، يجب أن تتطابق مع قيمة الخاصية بالكامل، وليس مجرد العثور عليها داخل النص. يتم التعامل مع القيمة النصية كقيمة بسيطة واحدة في عمليات البحث عن طريق عامل التشغيل مطابقات الواجهات.

على سبيل المثال، يمكنك فهرسة عناصر "كتاب" أو "فيلم" مع خصائص النوع. يمكن أن تشمل الأنواع "خيال علمي" و"علم" و"خيال". مع تم ضبط exactMatchWithOperator على false أو تم حذفها، تبحث عن نوع ما أو اختيار إما زر "العلم" أو "خيال" الواجهة أيضًا عرض نتائج لطلب البحث "Science-Fiction" حيث يتم تحويل النص إلى رمز مميّز "العلوم" و"Fiction" الرموز المميزة موجودة في "Science-Fiction". عندما تكون قيمة exactMatchWithOperator هي true، يتم التعامل مع النص كرمز مميز واحد، لذا فإن "العلوم" أو "خيال" تتطابق مع "Science-Fiction".

(اختياري) أضِف القسم "displayOptions"

يوجد قسم displayOptions اختياري في نهاية أي قسم "propertyDefinition". يحتوي هذا القسم على سلسلة displayLabel واحدة. السمة displayLabel هي تصنيف نصي مقترَح وسهلة الاستخدام. للموقع. إذا تم إعداد الخاصية للعرض باستخدام ObjectDisplayOptions, يتمّ عرض هذه التسمية أمام الموقع أو التطبيق. في حال إعداد السمة للشبكة الإعلانية ولم يتم تحديد displayLabel، سيتم فقط تحديد قيمة السمة المعروضة.

يعرض المقتطف التالي السمة movieTitle مع السمة displayLabel على "العنوان".

{
  "name": "movieTitle",
  "isReturnable": true,
  "isWildcardSearchable": true,
  "textPropertyOptions": {
    "retrievalImportance": { "importance": "HIGHEST" },
    "operatorOptions": {
       "operatorName": "title"
    }
},
  "displayOptions": {
    "displayLabel": "Title"
  }
},

في ما يلي قيم displayLabel لكل خصائص movie. في نموذج المخطط:

الموقع displayLabel
movieTitle Title
releaseDate Release date
genre Genre
duration Run length
actorName Actor
userRating Audience score
mpaaRating MPAA rating

(اختياري) إضافة قسم "suggestionFilteringOperators[]"

هناك خطوة اختيارية suggestionFilteringOperators[] في نهاية أي قسم من أقسام propertyDefinition. يمكنك استخدام هذا القسم من أجل تحديد خاصية تُستخدم لتصفية اقتراحات الإكمال التلقائي. على سبيل المثال، إلى تحديد عامل التشغيل genre لفلترة الاقتراحات استنادًا إلى طلب بحث المستخدم. النوع المفضل للفيلم. بعد ذلك، عندما يكتب المستخدم استعلام البحث الخاص به، لا تظهر يتم عرض الأفلام التي تطابق نوعها المفضّل كجزء من ميزة الإكمال التلقائي. الاقتراحات.

تسجيل المخطط

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

باستخدام معرّف مصدر البيانات، يمكنك إصدار UpdateSchema لتسجيل مخططك.

كما هو موضح بالتفصيل في UpdateSchema المرجعية أو صفحة مرجعية إصدار طلب HTTP التالي لتسجيل المخطط:

PUT https://cloudsearch.googleapis.com/v1/indexing/{name=datasources/*}/schema

يجب أن يحتوي نص طلبك على ما يلي:

{
  "validateOnly": // true or false,
  "schema": {
    // ... Your complete schema object ...
  }
}

استخدِم الخيار validateOnly لاختبار صلاحية المخطط بدون تسجيله بالفعل.

فهرسة بياناتك

بعد تسجيل المخطط، املأ مصدر البيانات باستخدام الفهرس الاتصالات. تتم الفهرسة عادةً من خلال موصِّل المحتوى.

باستخدام مخطط الفيلم، فإن طلب فهرسة واجهة برمجة تطبيقات REST لفيلم واحد تبدو كما يلي:

{
  "name": "datasource/<data_source_id>/items/titanic",
  "acl": {
    "readers": [
      {
        "gsuitePrincipal": {
          "gsuiteDomain": true
        }
      }
    ]
  },
  "metadata": {
    "title": "Titanic",
    "sourceRepositoryUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1",
    "objectType": "movie"
  },
  "structuredData": {
    "object": {
      "properties": [
        {
          "name": "movieTitle",
          "textValues": {
            "values": [
              "Titanic"
            ]
          }
        },
        {
          "name": "releaseDate",
          "dateValues": {
            "values": [
              {
                "year": 1997,
                "month": 12,
                "day": 19
              }
            ]
          }
        },
        {
          "name": "actorName",
          "textValues": {
            "values": [
              "Leonardo DiCaprio",
              "Kate Winslet",
              "Billy Zane"
            ]
          }
        },
        {
          "name": "genre",
          "enumValues": {
            "values": [
              "Drama",
              "Action"
            ]
          }
        },
        {
          "name": "userRating",
          "integerValues": {
            "values": [
              8
            ]
          }
        },
        {
          "name": "mpaaRating",
          "textValues": {
            "values": [
              "PG-13"
            ]
          }
        },
        {
          "name": "duration",
          "textValues": {
            "values": [
              "3 h 14 min"
            ]
          }
        }
      ]
    }
  },
  "content": {
    "inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.",
    "contentFormat": "TEXT"
  },
  "version": "01",
  "itemType": "CONTENT_ITEM"
}

لاحظ كيفية تطابق قيمة movie في الحقل objectType مع الكائن اسم تعريف في المخطط. ومن خلال مطابقة هاتين القيمتين، تعرف خدمة Cloud Search كائن المخطط الذي سيتم استخدامه أثناء الفهرسة.

لاحِظ أيضًا كيف تستخدمها فهرسة السمة releaseDate في المخطط. المواقع الفرعية الخاصة بـ year وmonth وday التي تكتسبها لأنها كنوع بيانات date من خلال استخدام datePropertyOptions لتعريفها. ومع ذلك، بما أنه لم يتم تحديد year وmonth وday في المخطط، يمكنك لا يمكن إجراء طلب بحث في إحدى هذه المواقع (مثل، year) بشكل فردي.

يُرجى أيضًا الإشارة إلى كيفية فهرسة السمة القابلة للتكرار actorName باستخدام قائمة القيم.

تحديد مشاكل الفهرسة المحتملة

المشكلتان الأكثر شيوعًا في ما يتعلق بالمخططات والفهرسة هما:

  • يحتوي طلب الفهرسة على كائن مخطط أو اسم خاصية لم يكن تم تسجيله في خدمة المخطط. تؤدي هذه المشكلة إلى ظهور السمة أو العنصر تجاهله.

  • يحتوي طلب الفهرسة على خاصية ذات نوع قيمة مختلفة عن النوع تسجيله في المخطط. تتسبب هذه المشكلة في عرض Cloud Search لخطأ في وقت الفهرسة

اختبار المخطط باستخدام عدة أنواع طلبات بحث

قبل تسجيل المخطط في مستودع بيانات إنتاج كبير، ففكر في إجراء الاختبار باستخدام مستودع بيانات اختبار أصغر. إجراء الاختبار باستخدام يتيح لك مستودع الاختبار الأصغر إجراء تعديلات على مخططك بسرعة، وحذف البيانات المفهرسة، بدون التأثير في فهرس أكبر أو فهرس إنتاج حالي. لمستودع بيانات الاختبار، قم بإنشاء تتيح قائمة التحكم بالوصول (ACL) لمستخدم تجريبي فقط، حتى لا يرى المستخدمون الآخرون هذه البيانات في نتائج البحث.

لإنشاء واجهة بحث للتحقق من صحة طلبات البحث، راجع واجهة البحث

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

الاختبار باستخدام طلب عام

يعرض الاستعلام العام جميع العناصر في مصدر البيانات التي تحتوي على طلب بحث محدد السلسلة. باستخدام واجهة بحث، يمكنك تنفيذ طلب بحث عام مقابل فيلم. مصدر البيانات عن طريق كتابة كلمة "titanic" والضغط على Return. الكل الأفلام التي تتضمّن كلمة "تيتانيك" ضمن نتائج البحث.

الاختبار باستخدام عامل تشغيل

تؤدي إضافة عامل تشغيل إلى طلب البحث إلى تقييد النتائج إلى العناصر التي تطابق تلك . على سبيل المثال، قد ترغب في استخدام عامل التشغيل actor للبحث عن جميع الأفلام التي بطولة ممثل محدد. باستخدام واجهة بحث، يمكنك تنفيذ طلب عامل التشغيل هذا ببساطة عن طريق الكتابة في زوج العامل=القيمة، مثل &quot;actor:Zane&quot;، والضغط على &quot;actor:Zane&quot;. جميع الأفلام التي شارك فيها "زين" كممثل ضمن نتائج البحث.

ضبط المخطط

بعد استخدام المخطّط وبياناتك، تابِع مراقبة ما يعمل. ولا تعمل لدى المستخدمين. نقترح عليك تعديل المخطّط في الحالات التالية:

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

إعادة الفهرسة بعد تغيير المخطط

لا يتطلب منك تغيير أي من القيم التالية في المخطط ما يلي: إعادة فهرسة بياناتك. يمكنك ببساطة إرسال UpdateSchema وسيستمر عمل الفهرس:

  • أسماء عوامل التشغيل
  • قيَم الحد الأدنى والحد الأقصى لعدد صحيح
  • الترتيب المرتَّب من خلال الأعداد الصحيحة والتعداد
  • خيارات الحداثة
  • خيارات العرض:

بالنسبة إلى التغييرات التالية، ستبقى البيانات التي تمت فهرستها سابقًا صالحة. وفقًا للمخطط المسجَّل مسبقًا. ومع ذلك، يجب إعادة فهرسة الإدخالات الحالية للاطّلاع على التغييرات استنادًا إلى المخطط المُعدَّل إذا كان يتضمن هذه التغييرات:

  • إضافة أو إزالة موقع جديد أو كائن جديد
  • تغيير isReturnable أو isFacetable أو isSortable من false إلى true

يجب ضبط السمة isFacetable أو isSortable على true فقط إذا كان لديك: حالة الاستخدام والحاجة الواضحة.

أخيرًا، عند تعديل مخطّطك من خلال وضع علامة على السمة isSuggestable، فيجب إعادة فهرسة بياناتك مما يؤدي إلى تأخير في استخدام الإكمال التلقائي لذلك الموقع.

تغييرات غير مسموح بها في المواقع

لا يُسمح ببعض تغييرات المخططات، حتى إذا أعدت فهرسة بياناتك، لأنها سيؤدي إلى كسر الفهرس أو ظهور نتائج بحث ضعيفة أو غير متسقة. هذه تضمين التغييرات على:

  • نوع بيانات الموقع.
  • اسم الموقع.
  • الإعداد: exactMatchWithOperator
  • الإعداد: retrievalImportance

ومع ذلك، هناك طريقة لتجنُّب هذا القيد.

إجراء تغيير معقد للمخطط

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

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

توضّح الخطوات التالية كيفية تغيير نوع البيانات أو اسم الموقع:

  1. أضِف سمة جديدة إلى تعريف العنصر في مخططك. استخدام اسم من الموقع الذي تريد تغييره.
  2. إصدار UpdateSchema بالتعريف الجديد. تذكر إرسال المخطط بالكامل، بما في ذلك العقار الجديد والقديم ضمن الطلب.
  3. إضافة بيانات الفهرس من مستودع البيانات. لإعادة ملء الفهرس، أرسل الكل طلبات الفهرسة باستخدام السمة الجديدة، ولكن ليس حيث إنّه سيؤدي إلى مضاعفة احتساب مطابقات طلبات البحث.

    1. أثناء إعادة تعبئة الفهرسة، ابحث عن الموقع الجديد القيمة التلقائية على السمة القديمة لتجنُّب السلوك غير المتسق.
    2. بعد اكتمال إعادة التعبئة، أجرِ طلبات بحث تجريبية للتحقّق من ذلك.
  4. احذف الموقع القديم. إصدار أمر آخر UpdateSchema طلب بدون اسم الموقع القديم وإيقاف استخدام الموقع القديم في طلبات الفهرسة المستقبلية.

  5. يمكنك نقل أي استخدامات للموقع القديم إلى الموقع الجديد. على سبيل المثال، إذا إذا غيّرت اسم السمة من "صانع محتوى" إلى "مؤلف"، يجب تعديل طلب البحث لاستخدام المؤلف حيث ذكرت سابقًا منشئ المحتوى.

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

تعرف على قيود الحجم

تفرض خدمة Cloud Search حدودًا على حجم عناصر البيانات المنظَّمة ومخططاتها. هذه الحدود هي:

  • الحد الأقصى لعدد عناصر المستوى الأعلى هو 10 عناصر.
  • يبلغ الحد الأقصى لعمق العرض الهرمي للبيانات المنظَّمة 10 مستويات.
  • يقتصر إجمالي عدد الحقول في العنصر على 1,000 حقل، والذي يتضمن عدد الحقول الأولية بالإضافة إلى مجموع عدد الحقول في كل كائن مدمج.

الخطوات التالية

في ما يلي بعض الخطوات التي يمكنك اتّخاذها:

  1. إنشاء واجهة بحث لاختبار مخططك.

  2. اضبط المخطط لتحسين جودة البحث.

  3. نظِّم مخطّطًا للحصول على التفسير الأمثل لطلب البحث.

  4. تعرَّف على كيفية الاستفادة من _dictionaryEntry المخطط المطلوب تعريفه مرادفات للعبارات الشائعة الاستخدام في شركتك. لاستخدام _dictionaryEntry المخطط، راجع تحديد المرادفات

  5. أنشئ موصل.