مخطّط Google Cloud Search هو بنية JSON تحدّد العناصر والسمات والخيارات التي سيتم استخدامها في فهرسة بياناتك وإجراء عمليات بحث عنها. يقرأ "موصّل المحتوى" البيانات من مستودعك، ويُنشئ فهارس للبيانات ويُنظّمها استنادًا إلى المخطّط المسجَّل.
يمكنك إنشاء مخطّط من خلال تقديم عنصر مخطّط JSON إلى واجهة برمجة التطبيقات، ثم تسجيله. يجب تسجيل عنصر مخطّط لكل مستودع من مستودعاتك قبل أن تتمكّن من فهرسة بياناتك.
يتناول هذا المستند أساسيات إنشاء المخططات. للحصول على معلومات عن كيفية تعديل المخطّط لتحسين تجربة البحث، يمكنك الرجوع إلى مقالة تحسين جودة البحث.
إنشاء مخطط
في ما يلي قائمة بالخطوات المستخدَمة لإنشاء مخطّط Cloud Search:
- تحديد سلوك المستخدم المتوقّع
- تهيئة مصدر بيانات
- إنشاء مخطّط
- نموذج مخطط كامل
- تسجيل المخطّط
- فهرسة بياناتك
- اختبار المخطّط
- ضبط المخطّط
تحديد سلوك المستخدِم المتوقّع
يساعد توقّع أنواع طلبات البحث التي يجريها المستخدمون في توجيه استراتيجيتك لإنشاء مخطّطك.
على سبيل المثال، عند إجراء طلبات بحث في قاعدة بيانات الأفلام، قد تتوقّع أن يُجري المستخدِم طلب بحث مثل "أريد مشاهدة كل الأفلام التي يلعب فيها روبرت ريدفورد دور البطولة". لذلك، يجب أن يتيح المخطّط نتائج طلبات البحث استنادًا إلى "كل الأفلام التي تضم ممثلًا معيّنًا".
لتحديد مخطّطك ليعكس أنماط سلوك المستخدِمين، ننصحك بمحاولة تنفيذ المهام التالية:
- تقييم مجموعة متنوعة من طلبات البحث المطلوبة من مستخدمين مختلفين
- حدِّد العناصر التي قد يتم استخدامها في طلبات البحث. العناصر هي مجموعات منطقية من البيانات ذات الصلة، مثل فيلم في قاعدة بيانات للأفلام.
- حدِّد السمات والقيم التي تكوّن الكائن والتي قد يتم استخدامها في طلبات البحث. السمات هي السمات القابلة للفهرسة للعنصر، ويمكن أن تشمل قيمًا أساسية أو عناصر أخرى. على سبيل المثال، قد يحتوي عنصر فيلم على خصائص مثل عنوان الفيلم وتاريخ إصداره كقيم أساسية. قد يحتوي كائن الفيلم أيضًا على كائنات أخرى، مثل أعضاء فريق التمثيل، لها سمات خاصة بها، مثل اسمهم أو دورهم.
- حدِّد أمثلة على القيم الصالحة للخصائص. القيم هي البيانات الفعلية المفهرسة لموقع معيّن. على سبيل المثال، قد يكون عنوان فيلم في قاعدة بياناتك هو "المهاجمون من الصندوق المفقود".
- حدِّد خيارات الترتيب والفرز التي يريدها المستخدمون. على سبيل المثال، عند البحث عن الأفلام، قد يريد المستخدمون الترتيب حسب الترتيب الزمني والتقييم حسب تقييم الجمهور، ولا يحتاجون إلى الترتيب أبجديًا حسب العنوان.
- (اختياري) ننصحك بالتفكير في ما إذا كان أحد مواقعك يمثّل سياقًا أكثر تحديدًا قد يتم تنفيذ عمليات البحث فيه، مثل دور المستخدمين في العمل أو قسمهم، وذلك حتى يمكن تقديم اقتراحات الإكمال التلقائي استنادًا إلى السياق. على سبيل المثال، بالنسبة إلى الأشخاص الذين يبحثون في قاعدة بيانات للأفلام، قد يقتصر اهتمامهم على نوع معيّن من الأفلام. سيحدّد المستخدمون نوع المحتوى الذي يريدون أن تعرِض نتائج البحث عنه، ربما كجزء من ملفه الشخصي. بعد ذلك، عندما يبدأ المستخدم في كتابة طلب بحث عن أفلام، لا يتم اقتراح سوى الأفلام من النوع المفضّل لديه، مثل "أفلام الحركة"، كأحد الاقتراحات ضمن ميزة الإكمال التلقائي.
- أنشئ قائمة بالكائنات والسمات وأمثلة القيم التي يمكن استخدامها في عمليات البحث. (لمعرفة تفاصيل عن كيفية استخدام هذه القائمة، يُرجى الاطّلاع على قسم تحديد خيارات المشغِّل).
بدء مصدر البيانات
يمثّل مصدر البيانات البيانات من مستودع تم فهرسته وتخزينه في Google Cloud. للحصول على تعليمات حول إعداد مصدر بيانات، يُرجى الرجوع إلى مقالة إدارة مصادر البيانات التابعة لجهات خارجية.
يتم عرض نتائج بحث المستخدم من مصدر البيانات. عندما ينقر المستخدم على نتيجة بحث، يوجّه Cloud Search المستخدم إلى العنصر الفعلي باستخدام عنوان URL المقدَّم في طلب الفهرسة.
تحديد أهدافك
الوحدة الأساسية للبيانات في المخطّط هي العنصر، ويُعرف أيضًا باسم "عنصر المخطّط "، وهو بنية منطقية للبيانات. في قاعدة بيانات الأفلام، أحد الهيكل المنطقي للبيانات هو "movie". يمكن أن يكون العنصر الآخر هو "شخص" لتمثيل طاقم التمثيل والتصوير المشاركين في الفيلم.
يحتوي كل عنصر في مخطّط على سلسلة من السمات التي تصف العنصر، مثل عنوان الفيلم ومدته أو اسم شخص وتاريخ ميلاده. يمكن أن تتضمّن سمات العنصر قيمًا أساسية أو عناصر أخرى.
يعرض الشكل 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
- يشير إلى ما إذا كان الموقع يحدّد البيانات التي يجب عرضها في نتائج البحث من خلال Query API. يمكن إرجاع كلّ مثال على ممتلكات الأفلام. يمكن استخدام المواقع غير القابلة للإرجاع للبحث أو ترتيب النتائج بدون عرضها على المستخدم. -
isRepeatable
: يشير إلى ما إذا كان يُسمح بقيم متعدّدة للسمة. على سبيل المثال، يكون للفيلم تاريخ إصدار واحد فقط، ولكن يمكن أن يضمّ ممثلين متعدّدين. isSortable
- يشير إلى أنّه يمكن استخدام السمة للترتيب. لا يمكن أن يكون هذا صحيحًا للسمات التي يمكن تكرارها. على سبيل المثال، قد يتم ترتيب نتائج الأفلام حسب تاريخ الإصدار أو تقييم الجمهور.-
isFacetable
: يشير إلى أنّه يمكن استخدام السمة لإنشاء العناصر الرئيسية. تُستخدَم السمة لتحسين نتائج البحث، حيث يرى المستخدِم النتائج الأولية ثم يضيف معايير أو سمات لتحسين تلك النتائج بشكلٍ أكبر. لا يمكن ضبط هذا الخيار على "صحيح" للسمات التي يكون نوعها "كائن"، ويجب ضبطisReturnable
على "صحيح" لضبط هذا الخيار. أخيرًا، لا يتوفّر هذا الخيار إلا لخصائص enum وboolean والنص. على سبيل المثال، في نموذج المخطّط، يمكننا جعل سماتgenre
وactorName
وuserRating
وmpaaRating
قابلة للتصفّح للسماح باستخدامها في عملية تحسين تفاعلية لنتائج البحث. - يشير الرمز
isWildcardSearchable
إلى أنّه يمكن للمستخدمين إجراء بحث باستخدام أحرف البدل في هذا الموقع. لا يتوفّر هذا الخيار إلا في المواقع النصية. تعتمد طريقة البحث باستخدام البدل في الحقل النصي على القيمة التي تم ضبطها في الحقل exactMatchWithOperator. إذا تم ضبطexactMatchWithOperator
علىtrue
، تتم تجزئة القيمة النصية كقيمة أساسية واحدة ويتم إجراء بحث باستخدام البدل عنها. على سبيل المثال، إذا كانت القيمة النصية هيscience-fiction
، يتطابق طلب البحث باستخدام العلامة النائبةscience-*
معها. إذا تم ضبطexactMatchWithOperator
علىfalse
، يتم تقسيم قيمة النص إلى وحدات ترميز ويتم إجراء بحث باستخدام البدل في كل رمز ترويجي. على سبيل المثال، إذا كانت القيمة النصية هي "خيال علمي"، تتطابق علامتا wildcard الاستعلام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
إلى أنّ عنوان
الفيلم من النوع text. يعرض المقتطف التالي السمة movieTitle
مع textPropertyOptions
لضبط نوع البيانات.
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
...
},
...
},
يمكن أن يتضمّن الموقع نوع بيانات مرتبطًا واحدًا فقط. على سبيل المثال، في releaseDate
schema لفيلمنا، يمكن أن يكون 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
هو اسم فيلم.
ولا يلزم أن تكون أسماء مشغّلي الفنادق مطابقة لاسم الفندق. بدلاً من ذلك، يجب استخدام أسماء عوامل التشغيل التي تعكس الكلمات الأكثر شيوعًا التي يستخدمها المستخدمون في مؤسستك. على سبيل المثال، إذا كان المستخدمون يفضّلون استخدام العبارة "name" بدلاً من "title" لعنوان فيلم، يجب ضبط اسم المشغّل على "name".
يمكنك استخدام اسم المشغّل نفسه لمواقع متعددة طالما أنّه يتمّ تحليل كل
المواقع إلى النوع نفسه. عند استخدام اسم عامل تشغيل مشترَك أثناء
طلب بحث، يتم استرداد جميع المواقع التي تستخدم اسم عامل التشغيل هذا. على سبيل المثال،
لنفترض أنّ عنصر الفيلم يتضمّن سمتَي plotSummary
وplotSynopsis
وكان لكلّ من هاتين السمتَين قيمة operatorName
تبلغ plot
. طالما أنّ كلتا السمتَين نصيتين (textPropertyOptions
)، سيؤدي طلب بحث واحد باستخدام عامل التشغيل plot
إلى استرجاعهما.
بالإضافة إلى operatorName
، يمكن أن تتضمّن السمات القابلة للترتيب الحقلين
lessThanOperatorName
وgreaterThanOperatorName
في operatorOptions
.
يمكن للمستخدمين استخدام هذه الخيارات لإنشاء طلبات بحث استنادًا إلى مقارنات مع قيمة
تم إرسالها.
أخيرًا، يحتوي textOperatorOptions
على حقل exactMatchWithOperator
في
operatorOptions
. إذا غيّرت قيمةexactMatchWithOperator
إلىtrue
، يجب أن تتطابق سلسلة الطلب مع قيمة السمة بالكامل، وليس مجرد العثور عليها في النص.
يتم التعامل مع القيمة النصية كقيمة أساسية واحدة في عمليات البحث باستخدام عوامل التشغيل وعمليات مطابقة السمات.
على سبيل المثال، ننصحك بفهرسة كائنات "كتاب" أو "فيلم" باستخدام سمات النوع.
يمكن أن تشمل الأنواع "خيال علمي" و"علم" و "أدب خيالي". عند ضبط قيمة exactMatchWithOperator
على false
أو حذفها، يؤدي البحث عن نوع أدب أو اختيار السمة "علم" أو "خيال" أيضًا إلى عرض نتائج عن "الخيال العلمي" لأنّ النص يتم تقسيمه إلى وحدات معجمية وتتوفر وحدات "علم" و "خيال" في "الخيال العلمي".
عندما يكون exactMatchWithOperator
هو true
،
يتم التعامل مع النص كعنصر رمزي واحد، لذا لا يتطابق
"العلوم" أو "الخيال العلمي" مع "الخيال العلمي".
(اختياري) إضافة قسم 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 لخطأ في وقت الفهرسة.
اختبار المخطّط باستخدام عدّة أنواع من طلبات البحث
قبل تسجيل مخطّطك في مستودع بيانات إنتاج كبير، ننصحك بإجراء الاختبار باستخدام مستودع بيانات اختباري أصغر حجمًا. يتيح لك الاختبار باستخدام مستودع اختباري أصغر إجراء تعديلات سريعة على المخطّط، وحذف البيانات المفهرَسة، بدون التأثير في فهرس أكبر أو فهرس حالي في قناة الإصدار العلني. بالنسبة إلى مستودع البيانات الاختبارية، أنشئ جدولاً دوارًا للتحكم في الوصول يمنح الإذن لمستخدم اختباري فقط حتى لا تظهر هذه البيانات للمستخدمين الآخرين في نتائج "بحث Google".
لإنشاء واجهة بحث للتحقّق من طلبات البحث، يُرجى الرجوع إلى واجهة البحث.
يحتوي هذا القسم على عدة أمثلة مختلفة لطلبات البحث التي يمكنك استخدامها لاختبار مخطّط فيلم.
إجراء الاختبار باستخدام طلب بحث عام
يعرض الاستعلام العام جميع العناصر في مصدر البيانات التي تحتوي على سلسلة معيّنة. باستخدام واجهة بحث، يمكنك إجراء طلب بحث عام في أحد مصادر بيانات الأفلام من خلال كتابة الكلمة "titanic" والضغط على مفتاح Return. يجب أن تظهر في نتائج البحث كل الأفلام التي تتضمّن كلمة "تيتانيك".
الاختبار مع مشغل شبكة الجوّال
تؤدي إضافة عامل تشغيل إلى طلب البحث إلى حصر النتائج بالعناصر التي تتطابق مع قيمة
عامل التشغيل هذه. على سبيل المثال، يمكنك استخدام عامل التشغيل actor
للعثور على
كل الأفلام التي يلعب فيها ممثل معيّن دور البطولة. باستخدام واجهة بحث، يمكنك تنفيذ
طلب البحث باستخدام عامل التشغيل هذا ببساطة عن طريق كتابة زوج عامل التشغيل=القيمة، مثل
"actor:Zane"، والضغط على مفتاح Return. يجب أن تظهر في نتائج البحث كل الأفلام التي شارك فيها "زين" كممثل.
تعديل المخطّط
بعد استخدام المخطّط والبيانات، تابِع مراقبة الميزات التي تعمل والتي لا تعمل لدى المستخدمين. يجب تعديل المخطّط في الحالات التالية:
- فهرسة حقل لم يتم فهرسته من قبل على سبيل المثال، قد يبحث المستخدمون مراراً عن الأفلام استنادًا إلى اسم المخرج، لذا يمكنك تعديل المخطّط للسماح باستخدام اسم المخرج كعامل تشغيل.
- تغيير أسماء عوامل تشغيل البحث استنادًا إلى ملاحظات المستخدمين يُفترض أن تكون أسماء عوامل التشغيل سهلة الاستخدام. إذا كان المستخدمون "يتذكرون" باستمرار اسم المشغِّل غير الصحيح، ننصحك بتغييره.
إعادة الفهرسة بعد تغيير المخطط
إنّ تغيير أيّ من القيم التالية في المخطّط لا يتطلّب منك مجددًا فهرسة بياناتك. يمكنك ببساطة إرسال طلب UpdateSchema جديد وسيستمر الفهرس في العمل:
- أسماء مشغّلي شبكات الجوّال
- الحد الأدنى والحد الأقصى للقيم الصحيحة
- ترتيب الأعداد الصحيحة والعناصر المحدَّدة بقيم ثابتة
- خيارات الحداثة
- خيارات العرض
بالنسبة إلى التغييرات التالية، ستستمر البيانات المفهرَسة سابقًا في العمل وفقًا للمخطّط المسجَّل سابقًا. ومع ذلك، عليك إعادة فهرسة الإدخالات الحالية للاطّلاع على التغييرات استنادًا إلى المخطّط المعدَّل إذا كان يتضمّن التغييرات التالية:
- إضافة أو إزالة موقع أو عنصر جديد
- تغيير
isReturnable
أوisFacetable
أوisSortable
منfalse
إلىtrue
يجب ضبط isFacetable
أو isSortable
على true
فقط إذا كان لديك
حالة استخدام وحاجة واضحة.
أخيرًا، عند تعديل المخطّط من خلال وضع علامة على موقع isSuggestable
،
يجب إعادة فهرسة بياناتك، ما يؤدي إلى تأخير استخدام ميزة الإكمال التلقائي
لهذا الموقع.
التغييرات غير المسموح بها على الموقع
لا يُسمح ببعض تغييرات المخطّط، حتى إذا أعدت فهرسة بياناتك، لأنّها ستؤدي إلى تعطيل الفهرس أو عرض نتائج بحث سيئة أو غير متّسقة. تشمل هذه التغييرات ما يلي:
- نوع بيانات الموقع
- اسم الموقع.
- إعداد
exactMatchWithOperator
- إعداد
retrievalImportance
ومع ذلك، هناك طريقة للتغلب على هذا القيد.
إجراء تغيير معقد في المخطّط
لتجنُّب التغييرات التي قد تؤدي إلى ظهور نتائج بحث رديئة أو فهرس بحث معطّل، يمنع Cloud Search أنواعًا معيّنة من التغييرات في طلبات UpdateSchema بعد فهرسة المستودع. على سبيل المثال، لا يمكن تغيير نوع البيانات أو اسم خاصية بعد ضبطهما. لا يمكن إجراء هذه التغييرات من خلال طلب بسيط UpdateSchema ، حتى إذا أعدت فهرسة بياناتك.
في الحالات التي يجب فيها إجراء تغيير غير مسموح به على schema، يمكنك غالبًا إجراء سلسلة من التغييرات المسموح بها التي تحقّق أثره نفسه. بشكل عام، يشمل ذلك نقل المواقع الإلكترونية المفهرَسة أولاً من تعريف عنصر قديم إلى تعريف أحدث، ثم إرسال طلب فهرسة يستخدم السمة الأحدث فقط.
توضِّح الخطوات التالية كيفية تغيير نوع البيانات أو اسم الموقع:
- أضِف سمة جديدة إلى تعريف الكائن في المخطّط. استخدِم اسمًا مختلفًا عن اسم الموقع الذي تريد تغييره.
- أرسِل طلب UpdateSchema بالتعريف الجديد. احرص على إرسال المخطّط بأكمله، بما في ذلك كلّ من الموقع الجديد والقديم، في الطلب.
إضافة البيانات السابقة إلى الفهرس من مستودع البيانات لإضافة البيانات السابقة إلى المؤشر، أرسِل جميع requests طلبات الفهرسة باستخدام الموقع الجديد، ولكن ليس الموقع القديم، لأنّ ذلك سيؤدي إلى احتساب مطابقات طلبات البحث مرّتين.
- أثناء إضافة البيانات السابقة إلى الفهرسة، ابحث عن الموقع الجديد وقم باستخدام الموقع القديم تلقائيًا لتجنّب السلوك غير المتّسق.
- بعد اكتمال عملية إضافة البيانات السابقة، يمكنك تنفيذ طلبات بحث تجريبية للتحقّق من صحة البيانات.
احذف الموقع القديم. أرسِل طلبًا آخر لسمة UpdateSchema بدون اسم السمة القديمة وأوقِف استخدام اسم السمة القديمة في طلبات الفهرسة المستقبلية.
نقل أي استخدام للموقع القديم إلى الموقع الجديد على سبيل المثال، إذا غيّرت اسم الموقع من صانع المحتوى إلى المؤلف، عليك تعديل رمز طلب البحث لاستخدام المؤلف حيث كان يشير سابقًا إلى صانع المحتوى.
يحتفظ Cloud Search بسجلّ لأيّ موقع أو عنصر تم حذفه لمدة 30 يومًا للحماية من أيّ إعادة استخدام قد تؤدي إلى نتائج فهرسة غير متوقّعة. خلال هذه المدة، يجب التوقف عن استخدام العنصر أو الموقع المحذوف، بما في ذلك استبعادهما من طلبات الفهرسة المستقبلية. يضمن لك ذلك أنّه إذا قرّرت لاحقًا إعادة عرض هذه الصفحة أو العنصر، يمكنك إجراء ذلك بطريقة تحافظ على صحة فهرسك.
التعرّف على الحدود القصوى للحجم
تفرض خدمة Cloud Search حدودًا على حجم كائنات البيانات المنظَّمة ومخطّطاتها. في ما يلي هذه الحدود:
- الحد الأقصى لعدد العناصر ذات المستوى الأعلى هو 10 عناصر.
- الحد الأقصى لعمق التسلسل الهرمي للبيانات المهيكلة هو 10 مستويات.
- يقتصر العدد الإجمالي للحقول في العنصر على 1000، ويشمل ذلك عدد الحقول الأساسية بالإضافة إلى مجموع عدد الحقول في كل عنصر مُدمَج.
الخطوات التالية
في ما يلي بعض الخطوات التالية التي يمكنك اتّخاذها:
أنشئ واجهة بحث لاختبار المخطّط.
عدِّل المخطّط لتحسين جودة البحث.
تعرَّف على كيفية الاستفادة من مخطّط
_dictionaryEntry
لتحديد مرادفات للمصطلحات المستخدَمة بشكل شائع في شركتك. لاستخدام المخطّط_dictionaryEntry
، يُرجى الاطّلاع على تحديد المرادفات.أنشئ موصّلًا.