- طلب HTTP
- نص الطلب
- نص الاستجابة
- نطاقات الأذونات
- QueryInterpretationOptions
- QueryInterpretation
- QueryInterpretation.InterpretationType
- QueryInterpretation.Reason
- SearchResult
- المقتطف
- MatchRange
- البيانات الوصفية
- ResultDisplayMetadata
- ResultDisplayMetadata.ResultDisplayLine
- ResultDisplayMetadata.ResultDisplayField
- ResultDebugInfo
- StructuredResult
- SpellResult
- SpellResult.SuggestionType
- SafeHtmlProto
- FacetResult
- FacetBucket
- ResponseDebugInfo
- ErrorInfo
- ErrorMessage
- ResultCounts
- SourceResultCount
- جرِّبه الآن
توفّر واجهة برمجة التطبيقات لطلبات البحث في Cloud Search طريقة البحث التي تعرض النتائج الأكثر صلة بطلب بحث المستخدم. يمكن أن تأتي النتائج من تطبيقات Google Workspace، مثل Gmail أو Google Drive، أو من بيانات تمت فهرستها من جهة خارجية.
ملاحظة: تتطلّب واجهة برمجة التطبيقات هذه حساب مستخدم نهائي عاديًا لتنفيذها. لا يمكن لحساب الخدمة تنفيذ طلبات واجهة برمجة التطبيقات للاستعلام مباشرةً. لاستخدام حساب خدمة لتنفيذ طلبات البحث، عليك إعداد تفويض على مستوى نطاق Google Workspace.
طلب HTTP
POST https://cloudsearch.googleapis.com/v1/query/search
يستخدِم عنوان URL بنية تحويل الترميز إلى gRPC.
نص الطلب
يتضمن نص الطلب بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "requestOptions": { object ( |
| الحقول | |
|---|---|
requestOptions |
خيارات الطلب، مثل تطبيق البحث والمنطقة الزمنية للمستخدم |
query |
سلسلة طلب البحث الأولية يمكنك الاطّلاع على عوامل تشغيل البحث المتوافقة في مقالة تضييق نطاق البحث باستخدام عوامل التشغيل. |
pageSize |
الحد الأقصى لعدد نتائج البحث التي سيتم عرضها في صفحة واحدة. تتراوح القيم الصالحة بين 1 و100، شاملةً القيمتين. القيمة التلقائية هي 10. الحد الأدنى للقيمة هو 50 عند طلب نتائج تتجاوز 2000. |
start |
فهرس بدء النتائج |
dataSourceRestrictions[] |
المصادر التي سيتم استخدامها لتنفيذ طلب البحث. في حال عدم تحديدها، يتم استخدام جميع مصادر البيانات من تطبيق البحث الحالي. |
facetOptions[] |
|
sortOptions |
خيارات ترتيب نتائج البحث |
queryInterpretationOptions |
خيارات لتفسير طلب المستخدم |
contextAttributes[] |
سمات السياق الخاصة بالطلب والتي سيتم استخدامها لتعديل ترتيب نتائج البحث الحد الأقصى لعدد العناصر هو 10. |
نص الاستجابة
الردّ من واجهة برمجة التطبيقات الخاصة بالبحث معرّف NEXT: 19
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "queryInterpretation": { object ( |
| الحقول | |
|---|---|
queryInterpretation |
نتيجة تفسير طلب بحث المستخدم يكون هذا الحقل فارغًا إذا كانت ميزة "تفسير الطلب" غير مفعّلة. |
results[] |
نتائج من طلب بحث |
structuredResults[] |
نتائج منظَّمة لطلب بحث المستخدم لا يتم احتساب هذه النتائج ضمن حجم الصفحة. |
spellResults[] |
تصحيح إملائي مقترح لطلب البحث |
facetResults[] |
نتائج الأوجه المتكرّرة |
hasMoreResults |
تُستخدَم لتحديد ما إذا كانت هناك المزيد من نتائج البحث التي تطابق طلب البحث. |
debugInfo |
معلومات تصحيح الأخطاء المتعلّقة بالردّ |
errorInfo |
معلومات الخطأ المتعلّقة بالردّ |
resultCounts |
معلومات موسّعة حول عدد النتائج |
حقل الدمج
في الحالات النادرة التي يتعذّر فيها على النظام البحث في جميع المستندات، أعِد تنفيذ طلب البحث. يمكن أن تكون |
|
resultCountEstimate |
تمثّل هذه السمة عدد النتائج المقدَّر لطلب البحث هذا. |
resultCountExact |
عدد النتائج المطابقة لطلب البحث هذا. |
نطاقات الأذونات
يجب توفير أحد نطاقات OAuth التالية:
https://www.googleapis.com/auth/cloud_search.queryhttps://www.googleapis.com/auth/cloud_search
لمزيد من المعلومات، يمكنك الاطّلاع على دليل التفويض.
QueryInterpretationOptions
خيارات لتفسير طلب المستخدم
| تمثيل JSON |
|---|
{ "disableNlInterpretation": boolean, "enableVerbatimMode": boolean, "disableSupplementalResults": boolean } |
| الحقول | |
|---|---|
disableNlInterpretation |
علم لإيقاف تفسير طلبات البحث باللغة الطبيعية القيمة التلقائية هي "خطأ". اضبطها على "صحيح" لإيقاف تفسير اللغة الطبيعية. لا ينطبق تفسير اللغة الطبيعية إلا على مصادر البيانات المحدّدة مسبقًا. |
enableVerbatimMode |
فعِّل هذا الخيار لإيقاف جميع التحسينات الداخلية، مثل تفسير اللغة الطبيعية (NL) للاستعلامات واسترجاع النتائج التكميلية واستخدام المرادفات، بما في ذلك المرادفات المخصّصة. سيتم إيقاف تفسير اللغة الطبيعية إذا كانت إحدى العلامتَين صحيحة. |
disableSupplementalResults |
استخدِم هذه العلامة لإيقاف النتائج التكميلية لطلب بحث معيّن. سيكون لإعداد النتائج التكميلية الذي تم اختياره على مستوى SearchApplication الأولوية إذا تم ضبطه على "صحيح". |
QueryInterpretation
| تمثيل JSON |
|---|
{ "interpretedQuery": string, "interpretationType": enum ( |
| الحقول | |
|---|---|
interpretedQuery |
تفسير طلب البحث المستخدَم في البحث على سبيل المثال، سيتم تفسير طلبات البحث التي تتضمّن عبارات بلغة طبيعية مثل "رسالة إلكترونية من فلان" على أنّها "from:john source:mail". لن يتم ملء هذا الحقل عندما يكون السبب هو NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY. |
interpretationType |
|
reason |
تمثّل هذه السمة سبب تفسير طلب البحث. لن يكون هذا الحقل UNSPECIFIED إذا لم يكن نوع التفسير NONE. |
interpretedQueryActualResultCount |
العدد الفعلي للنتائج التي يعرضها طلب البحث الذي تم تفسيره. |
interpretedQueryEstimatedResultCount |
العدد المقدَّر للنتائج التي يعرضها طلب البحث الذي تم تفسيره |
QueryInterpretation.InterpretationType
| عمليات التعداد | |
|---|---|
NONE |
لا يتم استخدام تفسير اللغة الطبيعية ولا نسخة أوسع من طلب البحث لجلب نتائج البحث. |
BLEND |
يتم دمج النتائج من الاستعلام الأصلي مع نتائج أخرى. يتم عرض سبب دمج هذه النتائج الأخرى مع نتائج طلب البحث الأصلي في حقل "السبب" أدناه. |
REPLACE |
يتم استبدال النتائج من طلب البحث الأصلي. يتم ملء حقل "السبب" أدناه بسبب استبدال النتائج من طلب البحث الأصلي. |
QueryInterpretation.Reason
| عمليات التعداد | |
|---|---|
UNSPECIFIED |
|
QUERY_HAS_NATURAL_LANGUAGE_INTENT |
يتم استخدام التفسير باللغة الطبيعية لطلب البحث من أجل استرجاع نتائج البحث. |
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY |
يتم استخدام التشابه بين عبارات طلب البحث والمستندات لتوسيع نطاق طلب البحث بشكل انتقائي من أجل استرداد نتائج بحث إضافية، وذلك لأنّه لم يتم العثور على نتائج كافية لطلب بحث المستخدم. سيكون طلب البحث الذي تم تفسيره فارغًا في هذه الحالة. |
SearchResult
نتائج تحتوي على معلومات مفهرسة لمستند المعرّف التالي: 16
| تمثيل JSON |
|---|
{ "title": string, "url": string, "snippet": { object ( |
| الحقول | |
|---|---|
title |
عنوان نتيجة البحث |
url |
عنوان URL لنتيجة البحث يحتوي عنوان URL على عملية إعادة توجيه من Google إلى المنتج الفعلي. هذا العنوان موقّع ويجب عدم تغييره. |
snippet |
سلسلة من جميع المقتطفات (الملخّصات) المتاحة لهذه النتيجة |
metadata |
البيانات الوصفية لنتيجة البحث |
clusteredResults[] |
إذا كان المصدر مجمّعًا، قدِّم قائمة بالنتائج المجمّعة. سيكون هناك مستوى واحد فقط من النتائج المجمّعة. إذا لم يتم تفعيل المصدر الحالي للتجميع، سيكون هذا الحقل فارغًا. |
debugInfo |
معلومات تصحيح الأخطاء المتعلّقة بنتيجة البحث هذه |
المقتطف
مقتطف من نتيجة البحث يلخّص محتوى الصفحة الناتجة
| تمثيل JSON |
|---|
{
"snippet": string,
"matchRanges": [
{
object ( |
| الحقول | |
|---|---|
snippet |
مقتطف من المستند قد يحتوي على حرف HTML تم إلغاء تسلسله ويجب إعادة تسلسله قبل العرض. |
matchRanges[] |
النطاقات المطابقة في المقتطف |
MatchRange
النطاق المطابق لمقتطف [البداية، النهاية).
| تمثيل JSON |
|---|
{ "start": integer, "end": integer } |
| الحقول | |
|---|---|
start |
موضع بداية المطابقة في المقتطف |
end |
تمثّل نهاية المباراة في المقتطف. |
البيانات الوصفية
البيانات الوصفية لنتيجة بحث مطابِقة
| تمثيل JSON |
|---|
{ "source": { object ( |
| الحقول | |
|---|---|
source |
تمثّل هذه السمة المصدر المحدّد للنتيجة، مثل Gmail. |
mimeType |
نوع MIME لنتيجة البحث. |
thumbnailUrl |
تمثّل عنوان URL للصورة المصغّرة الخاصة بالنتيجة. |
owner |
مالك المستند أو العنصر (عادةً المنشئ) الذي يظهر في نتيجة البحث |
createTime |
تمثّل هذه السمة وقت إنشاء هذا المستند أو العنصر في نتيجة البحث. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
updateTime |
تاريخ آخر تعديل للعنصر في نتيجة البحث إذا لم يتم ضبطها في السلعة، تكون القيمة المعروضة هنا فارغة. عند استخدام يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
fields[] |
الحقول المفهرسة في البيانات المنظَّمة، ويتم عرضها كسمة عامة مُسمّاة. |
displayOptions |
خيارات تحدّد طريقة عرض نتيجة بحث تتضمّن بيانات منظَّمة |
objectType |
نوع العنصر في نتيجة البحث |
ResultDisplayMetadata
| تمثيل JSON |
|---|
{
"objectTypeLabel": string,
"metalines": [
{
object ( |
| الحقول | |
|---|---|
objectTypeLabel |
تمثّل هذه السمة التصنيف المعروض للكائن. |
metalines[] |
محتوى السطر الوصفي الذي سيتم عرضه مع النتيجة |
ResultDisplayMetadata.ResultDisplayLine
مجموعة الحقول التي تشكّل سطرًا معروضًا
| تمثيل JSON |
|---|
{
"fields": [
{
object ( |
| الحقول | |
|---|---|
fields[] |
|
ResultDisplayMetadata.ResultDisplayField
عرض الحقول لنتائج query.search
| تمثيل JSON |
|---|
{
"label": string,
"operatorName": string,
"property": {
object ( |
| الحقول | |
|---|---|
label |
تمثّل هذه السمة التصنيف المعروض للمكان المخصّص للاستئجار. |
operatorName |
اسم عامل تشغيل السمة |
property |
زوج اسم القيمة الخاص بالسمة. |
ResultDebugInfo
معلومات تصحيح الأخطاء حول النتيجة
| تمثيل JSON |
|---|
{ "formattedDebugInfo": string } |
| الحقول | |
|---|---|
formattedDebugInfo |
معلومات تصحيح الأخطاء العامة المنسَّقة للعرض |
StructuredResult
نتائج منظَّمة يتم عرضها كجزء من طلب البحث
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الدمج يمكن أن تكون |
|
person |
تمثيل شخص |
SpellResult
| تمثيل JSON |
|---|
{ "suggestedQuery": string, "suggestionType": enum ( |
| الحقول | |
|---|---|
suggestedQuery |
تمثّل هذه السمة التصحيح الإملائي المقترَح للطلب. |
suggestionType |
اقتراح تم عرضه لطلب البحث الحالي. |
suggestedQueryHtml |
تمثّل هذه السمة رمز HTML الذي تم تنظيفه والذي يمثّل طلب البحث الذي تم تصحيح أخطائه الإملائية ويمكن استخدامه في واجهة المستخدم. يتضمّن ذلك عادةً علامات خاصة باللغة لترميز أجزاء من طلب البحث يتم التدقيق الإملائي فيها. |
SpellResult.SuggestionType
تمثّل هذه السمة نوع الاقتراح الذي تم عرضه لطلب البحث.
| عمليات التعداد | |
|---|---|
SUGGESTION_TYPE_UNSPECIFIED |
نوع التدقيق الإملائي التلقائي |
NON_EMPTY_RESULTS_SPELL_SUGGESTION |
تم تغيير اقتراح التدقيق الإملائي بدون أي نتائج. تستمر النتائج في الظهور لطلب البحث الأصلي (الذي يتضمّن نتائج غير صفرية)، مع اقتراح تدقيق إملائي يؤدي إلى ظهور نتائج. |
ZERO_RESULTS_FULL_PAGE_REPLACEMENT |
اقتراح التدقيق الإملائي الذي يتم تفعيله عندما لا يعرض طلب البحث الأصلي أي نتائج عندما لا يؤدي طلب البحث الأصلي إلى ظهور أي نتائج، ولكن يؤدي اقتراح التدقيق الإملائي إلى ظهور نتائج، نعرض نتائج لطلب البحث الذي تم تصحيح أخطائه الإملائية. |
SafeHtmlProto
ملاحظة مهمة: من غير الآمن قبول هذه الرسالة من مصدر غير موثوق به، لأنّه من السهل على المهاجم إنشاء رسائل متسلسلة لا تستوفي عقد أمان النوع، على سبيل المثال، قد تحتوي على نص برمجي يتحكّم فيه المهاجم. النظام الذي يتلقّى SafeHtmlProto يثق ضمنيًا في منتج SafeHtmlProto. لذا، من الآمن بشكل عام عرض هذه الرسالة في ردود RPC، ولكن من غير الآمن بشكل عام قبولها في طلبات RPC.
| تمثيل JSON |
|---|
{ "privateDoNotAccessOrElseSafeHtmlWrappedValue": string } |
| الحقول | |
|---|---|
privateDoNotAccessOrElseSafeHtmlWrappedValue |
ملاحظة مهمة: لا تضبط هذا الحقل أو تقرأه أبدًا، حتى من الاختبارات، فهو خاص. راجِع المستندات في أعلى ملف .proto لمعرفة حِزم لغات البرمجة التي يمكن استخدامها لإنشاء هذه الرسالة أو قراءتها. |
FacetResult
ردّ متعدد الأوجه خاص بالمصدر
| تمثيل JSON |
|---|
{
"sourceName": string,
"objectType": string,
"operatorName": string,
"buckets": [
{
object ( |
| الحقول | |
|---|---|
sourceName |
اسم المصدر الذي يتم عرض نتائج الفلاتر له. لن يكون فارغًا. |
objectType |
نوع العنصر الذي يتم عرض نتائج الفلاتر له. يمكن أن يكون الحقل فارغًا. |
operatorName |
اسم عامل التشغيل الذي تم اختياره لتقسيم النتائج إلى أوجه. @see cloudsearch.SchemaPropertyOptions |
buckets[] |
FacetBuckets للقيم في الرد الذي يحتوي على نتيجة واحدة على الأقل مع الفلتر المقابل. |
FacetBucket
المجموعة في وجه البحث هي وحدة التشغيل الأساسية. يمكن أن يتضمّن التصنيف إما قيمة واحدة أو نطاقًا متجاورًا من القيم، وذلك حسب نوع الحقل الذي تم تصنيفه. يتم حاليًا استخدام FacetBucket لعرض عنصر الرد فقط.
| تمثيل JSON |
|---|
{ "count": integer, "percentage": integer, "filter": { object ( |
| الحقول | |
|---|---|
count |
عدد النتائج التي تطابق قيمة المجموعة. لا يتم عرض الأعداد إلا في عمليات البحث التي يتم التأكّد من دقتها. لا يضمن Cloud Search توفّر أعداد الأوجه لأي طلب بحث، وقد تظهر أعداد الأوجه بشكل متقطع فقط، حتى لطلبات البحث المتطابقة. لا تنشئ تبعيات على توفّر عدد النتائج حسب الفئة، بل استخدِم نسب عدد النتائج حسب الفئة التي يتم عرضها دائمًا. |
percentage |
النسبة المئوية للنتائج التي تتطابق مع قيمة المجموعة. تتراوح القيمة المعروضة بين (0 و100]، ويتم تقريبها إلى عدد صحيح إذا كانت كسرية. إذا لم يتم عرض القيمة بشكلٍ صريح، فإنّها تمثّل قيمة نسبة مئوية يتم تقريبها إلى 0. يتم عرض النسب المئوية لجميع عمليات البحث، ولكنّها تكون تقديرية. بما أنّه يتم عرض النسب المئوية دائمًا، عليك عرض النسب المئوية بدلاً من الأعداد. |
filter |
الفلتر الذي سيتم تمريره في طلب البحث في حال تحديد الحزمة المقابلة |
حقل الدمج bucket_value يمكن أن يكون نطاق أو قيمة المجموعة التي يتم تقسيمها إلى أوجه bucket_value واحدًا مما يلي فقط: |
|
value |
|
ResponseDebugInfo
معلومات تصحيح الأخطاء المتعلّقة بالردّ
| تمثيل JSON |
|---|
{ "formattedDebugInfo": string } |
| الحقول | |
|---|---|
formattedDebugInfo |
معلومات تصحيح الأخطاء العامة المنسَّقة للعرض |
ErrorInfo
معلومات الخطأ المتعلّقة بالردّ
| تمثيل JSON |
|---|
{
"errorMessages": [
{
object ( |
| الحقول | |
|---|---|
errorMessages[] |
|
ErrorMessage
رسالة الخطأ لكل ردّ من المصدر
| تمثيل JSON |
|---|
{
"source": {
object ( |
| الحقول | |
|---|---|
source |
|
errorMessage |
|
ResultCounts
معلومات حول عدد النتائج
| تمثيل JSON |
|---|
{
"sourceResultCounts": [
{
object ( |
| الحقول | |
|---|---|
sourceResultCounts[] |
معلومات عن عدد النتائج لكل مصدر يتضمّن نتائج |
SourceResultCount
معلومات عن عدد النتائج لكل مصدر
| تمثيل JSON |
|---|
{ "source": { object ( |
| الحقول | |
|---|---|
source |
تمثّل هذه السمة المصدر المرتبط بمعلومات عدد النتائج. |
hasMoreResults |
تُستخدَم لتحديد ما إذا كان هناك المزيد من نتائج البحث لهذا المصدر. |
حقل الدمج يمكن أن تكون |
|
resultCountEstimate |
عدد النتائج المقدَّر لهذا المصدر |
resultCountExact |
عدد النتائج الدقيق لهذا المصدر. |