مخطّط 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
على "صحيح" لضبط هذا الخيار. وأخيرًا، لا يتم دعم هذا الخيار إلا للخصائص التعداد والمنطقية والنصية. على سبيل المثال، في نموذج المخطّط، يمكننا جعل سمات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
أو إسقاطها، سيؤدي البحث عن نوع محدّد أو اختيار واجهة "علم" أو واجهة "خيال" أيضًا إلى عرض نتائج لـ "Science-Fiction" بسبب ترميز النص ورمز "Science" و"Fiction" في "Science-Fiction".
عندما يكون 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 لخطأ في وقت الفهرسة.
اختبار المخطط باستخدام عدة أنواع طلبات بحث
قبل تسجيل مخطّطك في مستودع بيانات إنتاج كبير، ننصحك بإجراء الاختبار باستخدام مستودع بيانات اختباري أصغر حجمًا. يتيح لك الاختبار باستخدام مستودع اختباري أصغر إجراء تعديلات سريعة على المخطّط، وحذف البيانات المفهرَسة، بدون التأثير في فهرس أكبر أو فهرس حالي في قناة الإصدار العلني. بالنسبة إلى مستودع بيانات الاختبار، أنشئ قائمة ACL تسمح لمستخدم تجريبي فقط حتى لا تظهر هذه البيانات للمستخدمين الآخرين في نتائج "بحث Google".
لإنشاء واجهة بحث للتحقّق من طلبات البحث، يُرجى الرجوع إلى واجهة البحث.
يحتوي هذا القسم على العديد من نماذج طلبات البحث المختلفة التي قد تستخدمها لاختبار مخطط أفلام.
إجراء الاختبار باستخدام طلب بحث عام
يعرض الاستعلام العام جميع العناصر في مصدر البيانات التي تحتوي على سلسلة معيّنة. باستخدام واجهة بحث، يمكنك إجراء طلب بحث عام في أحد مصادر بيانات الأفلام من خلال كتابة الكلمة "titanic" والضغط على مفتاح Return. يجب أن تظهر في نتائج البحث كل الأفلام التي تتضمّن كلمة "تيتانيك".
الاختبار مع مشغل شبكة الجوّال
تؤدي إضافة عامل تشغيل إلى طلب البحث إلى حصر النتائج بالعناصر التي تتطابق مع قيمة
عامل التشغيل هذه. على سبيل المثال، يمكنك استخدام عامل التشغيل actor
للعثور على
كل الأفلام التي يلعب فيها ممثل معيّن دور البطولة. باستخدام واجهة بحث، يمكنك إجراء طلب بحث عامل التشغيل هذا ببساطة من خلال كتابة زوج العامل/القيمة، مثل "actor:Zane"، والضغط على Return. يجب أن تظهر في نتائج البحث كل الأفلام التي شارك فيها "زين" كممثل.
تعديل المخطّط
بعد استخدام المخطّط والبيانات، تابِع مراقبة الميزات التي تعمل والتي لا تعمل لدى المستخدمين. نقترح عليك تعديل المخطّط في الحالات التالية:
- فهرسة حقل لم يتم فهرسته من قبل على سبيل المثال، قد يبحث المستخدمون مراراً عن الأفلام استنادًا إلى اسم المخرج، لذا يمكنك تعديل المخطّط للسماح باستخدام اسم المخرج كعامل تشغيل.
- تغيير أسماء عوامل تشغيل البحث استنادًا إلى ملاحظات المستخدمين يُفترض أن تكون أسماء عوامل التشغيل سهلة الاستخدام. إذا كان المستخدمون "يتذكرون" اسم المشغل الخاطئ باستمرار، فيمكنك التفكير في تغييره.
إعادة الفهرسة بعد تغيير المخطط
إنّ تغيير أيّ من القيم التالية في المخطّط لا يتطلّب منك مجددًا فهرسة بياناتك. يمكنك ببساطة إرسال طلب UpdateSchema جديد وسيستمر الفهرس في العمل:
- أسماء مشغّلي شبكات الجوّال
- الحد الأدنى والحد الأقصى للقيم الصحيحة
- ترتيب الأعداد الصحيحة والعناصر المحدَّدة بقيم ثابتة
- خيارات الحداثة
- خيارات العرض
بالنسبة إلى التغييرات التالية، ستستمر البيانات المفهرَسة سابقًا في العمل وفقًا للمخطّط المسجَّل سابقًا. ومع ذلك، عليك إعادة فهرسة الإدخالات الحالية للاطّلاع على التغييرات استنادًا إلى المخطّط المعدَّل إذا كان يتضمّن التغييرات التالية:
- إضافة أو إزالة موقع أو عنصر جديد
- جارٍ تغيير
isReturnable
أوisFacetable
أوisSortable
منfalse
إلىtrue
.
يجب ضبط isFacetable
أو isSortable
على true
فقط إذا كان لديك
حالة استخدام وحاجة واضحة.
أخيرًا، عند تعديل المخطّط من خلال وضع علامة على موقع isSuggestable
،
يجب إعادة فهرسة بياناتك، ما يؤدي إلى تأخير استخدام ميزة الإكمال التلقائي
لهذا الموقع.
التغييرات غير المسموح بها على الموقع
لا يُسمح ببعض تغييرات المخطّط، حتى إذا أعدت فهرسة بياناتك، لأنّها ستؤدي إلى تعطيل الفهرس أو عرض نتائج بحث سيئة أو غير متّسقة. ويشمل ذلك إجراء تغييرات على ما يلي:
- نوع بيانات الموقع.
- اسم الموقع.
- الإعداد:
exactMatchWithOperator
- إعداد
retrievalImportance
ومع ذلك، هناك طريقة للتغلب على هذا القيد.
إجراء تغيير معقد للمخطط
ولتجنّب التغييرات التي قد تؤدي إلى إنشاء نتائج بحث سيئة أو فهرس بحث معطّل، تمنع خدمة Cloud Search أنواعًا معيّنة من التغييرات في طلبات UpdateSchema بعد فهرسة المستودع. على سبيل المثال، لا يمكن تغيير نوع البيانات أو اسم الموقع بعد تحديدها. ولا يمكن إجراء هذه التغييرات من خلال طلب UpdateSchema بسيط، حتى إذا أعدت فهرسة البيانات.
في الحالات التي يجب فيها إجراء تغيير غير مسموح به على المخطط، يمكنك غالبًا إجراء سلسلة من التغييرات المسموح بها التي تحقّق التأثير نفسه. بشكل عام، يشمل ذلك نقل المواقع الإلكترونية المفهرَسة أولاً من تعريف عنصر قديم إلى تعريف أحدث، ثم إرسال طلب فهرسة يستخدم السمة الأحدث فقط.
توضِّح الخطوات التالية كيفية تغيير نوع البيانات أو اسم الموقع:
- أضِف سمة جديدة إلى تعريف العنصر في مخططك. استخدِم اسمًا مختلفًا عن اسم الموقع الذي تريد تغييره.
- أدخِل التعريف الجديد في طلب UpdateSchema. احرص على إرسال المخطّط بأكمله، بما في ذلك كلّ من الموقع الجديد والقديم، في الطلب.
إضافة البيانات السابقة إلى الفهرس من مستودع البيانات لإضافة البيانات السابقة إلى المؤشر، أرسِل جميع requests طلبات الفهرسة باستخدام الموقع الجديد، ولكن ليس الموقع القديم، لأنّ ذلك سيؤدي إلى احتساب مطابقات طلبات البحث مرّتين.
- أثناء إعادة تعبئة الفهرسة، ابحث عن السمة الجديدة وضبط الإعدادات التلقائية على السمة القديمة لتجنُّب السلوك غير المتسق.
- بعد اكتمال عملية إضافة البيانات السابقة، يمكنك تنفيذ طلبات بحث تجريبية للتحقّق من صحة البيانات.
احذف الموقع القديم. أرسِل طلبًا آخر لسمة UpdateSchema بدون اسم السمة القديمة وأوقِف استخدام اسم السمة القديمة في طلبات الفهرسة المستقبلية.
يمكنك نقل أي استخدامات للموقع القديم إلى الموقع الجديد. على سبيل المثال، إذا غيّرت اسم الموقع من صانع المحتوى إلى المؤلف، عليك تعديل رمز طلب البحث لاستخدام المؤلف حيث كان يشير سابقًا إلى صانع المحتوى.
يحتفظ Cloud Search بسجلّ لأيّ موقع أو عنصر تم حذفه لمدة 30 يومًا للحماية من أيّ إعادة استخدام قد تؤدي إلى نتائج فهرسة غير متوقّعة. خلال هذه المدة، يجب التوقف عن استخدام العنصر أو الموقع المحذوف، بما في ذلك استبعادهما من طلبات الفهرسة المستقبلية. ويضمن هذا أنه إذا قررت لاحقًا استعادة تلك الخاصية أو الكائن، يمكنك إجراء ذلك بطريقة تحافظ على صحة الفهرس.
التعرّف على الحدود القصوى للحجم
تفرض Cloud Search حدودًا على حجم عناصر البيانات المنظَّمة ومخططاتها. في ما يلي هذه الحدود:
- الحد الأقصى لعدد عناصر المستوى الأعلى هو 10 عناصر.
- يبلغ الحد الأقصى لعمق العرض الهرمي للبيانات المنظَّمة 10 مستويات.
- يقتصر العدد الإجمالي للحقول في العنصر على 1000، ويشمل ذلك عدد الحقول الأساسية بالإضافة إلى مجموع عدد الحقول في كل عنصر مُدمَج.
الخطوات التالية
في ما يلي بعض الخطوات التالية التي يمكنك اتّخاذها:
أنشئ واجهة بحث لاختبار المخطّط.
عدِّل المخطّط لتحسين جودة البحث.
تعرَّف على كيفية الاستفادة من مخطّط
_dictionaryEntry
لتحديد مرادفات للمصطلحات الشائعة الاستخدام في شركتك. لاستخدام المخطّط_dictionaryEntry
، يُرجى الاطّلاع على تحديد المرادفات.أنشئ موصل.