أداة بحث Freebase

  1. لمحة عن Freebase suggest
  2. إضافة Freebase suggest إلى موقعك الإلكتروني
  3. خيارات الإعداد
  4. تعديل خدمة CSS
  5. آلية عمل الأحداث
  6. مزيد من المعلومات والأسئلة الشائعة
  7. أمثلة ووصفات طعام

لمحة عن Freebase suggest

Freebase suggest هو مكوّن إضافي في jQuery يضيف الإكمال التلقائي للموضوع Freebase إلى مربعات البحث على موقعك. يبدأ المستخدمون كتابة النص، وتقترح الأداة نتائج ذات صلة من ملايين المواضيع على Freebase.com أو أي مجموعة فرعية من الأنواع مثل الأشخاص أو المواقع أو الحيوانات. تساعد نشرات المواضيع المستخدم على اختيار العنصر الصحيح المُعرّف بشكل فريد عن طريق معرّف Freebase.

Freebase suggest.png

الميزات

جرِّب ذلك الآن.

Freebase suggest في البرية

المواقع الإلكترونية المعروفة باستخدام Freebase suggest:

لماذا تُستخدم Freebase suggest؟

  • باستخدام ميزة "الإكمال التلقائي"، كتابة المستخدمين بمعدّل أقل لإدخال المزيد من البيانات.
  • إدخال البيانات ممتع ودقيق!
  • يمكنك تقليل الحِمل المعرفي على مستخدمي تطبيقك بفضل الصور والأوصاف المتوفّرة في عناصر التحكّم في المواضيع.
  • استخدِم معرّفات قوية بدلاً من الكلمات الرئيسية النصية. لا يظهر الاسم "Sting" غامضًا، إلا أن رقمَي تعريف Freebase رقمَي /en/sting و/en/sting_1959 ليسا كذلك.
  • تجنّب استخدام أسماء مكرّرة للكيان نفسه. باف دادي، ب. ديدي، شون كومز يشير جميعًا إلى /en/sean_combs.

إضافة Freebase suggest إلى موقعك الإلكتروني

لإضافة Freebase suggest إلى صفحة الويب، يجب تضمين الرمز التالي في مصدر الموقع الإلكتروني. يمكنك أيضًا الحصول على مفتاح واجهة برمجة التطبيقات واستخدامه لتوسيع وظائف Freebase suggest.

الرمز المطلوب تضمينه في موقعك الإلكتروني

يُرجى تضمين ما يلي في <head> لمستند HTML:

<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.js"></script>
<script type="text/javascript">
$(function() {
  $("#myinput").suggest({filter:'(all type:/film/director)'});
});
</script>

بعد ذلك، استخدِم حقل إدخال في المستند <body> يشبه ما يلي:

<input type="text" id="myinput"/>

الحصول على مفتاح واجهة برمجة تطبيقات

يؤدي الحصول على مفتاح واجهة برمجة التطبيقات إلى السماح للتطبيق بتقديم طلبات الاقتراح. وبدون مفتاح واجهة برمجة تطبيقات، ستعمل الأداة لأغراض اختبار محدودة. للحصول على مفتاح، اتبع التعليمات الواردة في صفحة البدء الخاصة بنا.

بعد الحصول على مفتاح، يمكنك تمريره إلى Freebase suggest باستخدام شيء مثل:

$(function() {
  $("#myinput").suggest({ "key" : "<your api key>"});
});

خيارات الإعداد

يوضح الجدول التالي خيارات ضبط Freebase suggest.

الاسم النوع القيمة التلقائية الوصف
المتقدمة منطقي صواب في حال ضبط هذه السياسة على"صحيح"، ستحلّل Freebase suggest أزواج name:value المضمّنة في الإدخال وتعالجها كقيود إضافية للفلتر. مثلاً، بالنسبة إلى 'bob type:artist contributed_to:"Love and Theft"'، يتم فرض قيود إضافية على الفلتر، ويتم تمرير '(all type:artist contributed_to:"Love and Theft")' إلى البحث. بالإضافة إلى ذلك، عند ضبط الإعدادات المتقدّمة على "صحيح"، سيتعرّف Freebase suggest على أرقام تعريف Freebase ومعرّفات MID، بحيث يمكن للعميل البحث مباشرةً عن كيان من خلال معرّفه أو معرّفه MID.
تامة منطقي خطأ إذا تم ضبط السياسة على "صحيح"، يعني ذلك أنّ واجهة برمجة تطبيقات "بحث Google" تعرض فقط النتائج المطابِقة تمامًا (للمحتوى الذي يمثّل القيمة أو غير ذلك في الإدخال). يتم تمرير هذه القيمة بوضوح إلى واجهة برمجة تطبيقات البحث.
filter سلسلة قيمة فارغة يمكنك تحديد قيود الفلتر التلقائية التي سيتم تمريرها بشفافية إلى واجهة برمجة تطبيقات البحث على أنها معلّمات الفلاتر. على سبيل المثال، لتقييد Freebase suggest للبحث فقط في الكليات و/أو الجامعات، استخدم "(all type:/education/university)" كفلتر. اطّلِع على واجهة برمجة تطبيقات البحث أو القيود النصية للحصول على قائمة شاملة بفلاتر البحث المتاحة.
مفتاح سلسلة قيمة فارغة قدِّم مفتاح واجهة برمجة التطبيقات لواجهة برمجة تطبيقات البحث التلقائية التي تحددها service_url + service_path. ويمكنك الحصول عليه من وحدة تحكم واجهات برمجة التطبيقات.
lang سلسلة قيمة فارغة تقبل المعلّمة lang قائمة برموز اللغات مفصولة بفواصل تؤدي إلى إجراء البحث بجميع اللغات المحدّدة ويتم ترتيب النتائج باللغة الأولى المدرَجة وعرضها باللغة الأولى للقائمة التي تحتوي على اسم الكيان. تتوفّر حاليًا 18 لغة: en (الإنجليزية) وes (spanish) وfr (الفرنسية) وde (الألمانية) وIt (italian) وpt (portuguese) وzh (الصينية) وja (اليابانية) وko (korean) وru (الروسية) وsv (swedish) وrian (مرن) وrunish وranish) وRonish (مرن)) تمتلك اللغة الإنجليزية أكبر قدر من التغطية وهي اللغة التلقائية. يتم تمرير هذه القيمة بوضوح إلى واجهة برمجة تطبيقات البحث.
هَدَف سلسلة قيمة فارغة تتيح المعلمة scoring التحكم في مكونات نتيجة مدى الصلة المستخدمة لاحتساب النتيجة النهائية. يتم تمرير هذه القيمة بوضوح إلى واجهة برمجة تطبيقات البحث.
  • entity: يمكنك استخدام نتائج FREEBASE وGoogle لمدى الصلة، مع ضبط نتائج Google المفقودة على 1.0 تلقائيًا. وهذا هو الخيار التلقائي.
  • freebase: استخدِم نتيجة مدى الصلة بموضوع Freebase فقط.
  • schema: يُستخدم عند البحث عن كيانات مخطط مثل الأنواع أو المواقع أو النطاقات. يتم حساب أعداد الروابط لكيانات المخططات بشكل مختلف.
تَعْلِيمَة سلسلة always القيم الصالحة هي always وno_results وno_spelling. وفي حال طلب التهجئة وعرض البحث تصحيحًا إملائيًا، ستعرض Freebase suggest التصحيح في قائمة suggest. يتم تمرير هذه القيمة بوضوح إلى خدمة البحث.
تحليق قيمة منطقية، bottom صواب تحدِّد هذه السياسة ما إذا كان سيتم عرض وصف لعملية التمرير أم لا عند التمرير فوقها. إذا bottom، اعرِض الجزء السفلي من قائمة "اقتراح". في حال عرض قائمة "الاقتراح" أعلى مربّع الإدخال، سيتم عرض النشرة في أعلى القائمة. في حال ضبط هذه السياسة على "صحيح"، ستبذل خدمة "اقتراح" قصارى جهدها لعرض القائمة المنسدلة على يمين أو يسار القائمة.
اقتراح_جديد سلسلة قيمة فارغة النص المطلوب عرضه أسفل قائمة الاقتراحات. عند الاختيار، يتم تشغيل fb-select-new.
css اعتراض استبدال أسماء فئات CSS التلقائية المستخدَمة لعناصر Freebase suggest. ويمكنك الاطّلاع على تعديل خدمة CSS لمعرفة التفاصيل.
css_prefix سلسلة قيمة فارغة يمكنك تحديد بادئة لإضافتها قبل ذلك إلى أسماء الفئات لعناصر اقتراح. على سبيل المثال، إذا كان css_prefix هو "foo-"، ستكون أسماء الحاويات "foo-fbs-pane" &"foo-fbs-flyoutpane".
show_id منطقي صواب تعرض القيمة &#39؛notable&#39؛ التي يعرضها البحث. أمّا إذا لم تكن متوفّرة وكان ذلك صحيحًا، فسيتم عرض معرّف السلعة.
service_url سلسلة القيمة هي https://www.googleapis.com/freebase/v1 هذا هو عنوان URL الأساسي لخدمة suggest.
مسار_الخدمة سلسلة /search service_url + service_path = عنوان URL يؤدي إلى خدمة suggest.
flyout_service_url سلسلة قيمة فارغة عنوان URL الأساسي لخدمة Flyout. وفي حال ترك السياسة بدون قيمة، سيتم ضبط القيمة تلقائيًا على service_url.
flyout_service_path سلسلة القيمة هي /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} flyout_service_url + flyout_service_path = عنوان URL لخدمة flyout. '${id}' &&33;{key}' يتم استبدالها بمعرّف العنصر الذي تم تمريره ومفتاح مفتاح واجهة برمجة التطبيقات، على التوالي.
flyout_image_service_url سلسلة قيمة فارغة تمثّل هذه السمة عنوان URL الأساسي للصورة في القائمة المنسدلة. وفي حال ترك السياسة بدون قيمة، سيتم ضبط القيمة تلقائيًا على service_url.
flyout_image_service_path سلسلة القيمة هي /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png flyout_image_service_url + flyout_image_service_path = خدمة عنوان URL المؤدي إلى خدمة الصور. '${id}' و '{key}' سيتم استبدالهما برقم تعريف العنصر الذي تم تمريره فوقه ومفتاح واجهة برمجة التطبيقات، على التوالي.
flyout_parent سلسلة (أداة اختيار jQuery) قيمة فارغة يتم تلقائيًا إلحاق حاوية Flyout بالنص الأساسي للمستند ووضعها تمامًا. تحدّد flyout_parent عنصرًا رئيسيًا مختلفًا ولن يتم وضع النشرة بشكلٍ كامل.
محاذاة سلسلة قيمة فارغة إذا لم يتم ضبط align، تتم محاذاة قائمة "الاقتراح" مع الموضع "&&;;;;;; كيف يمكن": لإلغاء هذا السلوك وضبط محاذاته بشكل صريح، اضبط align على "left;quot; أو "right".
الحالة مصفوفة[4](سلسلة) ["بدء الكتابة للحصول على اقتراحات...", "البحث...... "اختيار عنصر من القائمة:", "عذرًا، حدث خطأ. يُرجى إعادة المحاولة لاحقًا"] رسائل الحالة التي تظهر في المراحل الأربع المختلفة من "اقتراح"، [0] عندما يكون مربّع الإدخال فارغًا ويتم التركيز عليه. [1] عند استرداد النتائج، [2] عند عرض النتائج، [3] عند حدوث خطأ من خدمة suggest. يمكنك تجاوز رسائل الحالة التلقائية هذه من خلال تمرير مصفوفة مختلفة من السلسلة المقابلة للمراحل الأربع المختلفة.
عنصر رئيسي سلسلة (أداة اختيار jQuery) قيمة فارغة يتم إلحاق قائمة "الاقتراح" تلقائيًا لنص المستند، ويتم عرضها بشكل كامل. ويمكنك استخدام parent لتحديد عنصر رئيسي مختلف ولن يتم وضع القائمة في القائمة على الإطلاق.
animate منطقي خطأ إذا كانت القيمة صحيحة، سيتم تحريك عرض قائمة "اقتراح" باستخدام تأثير jQueryslidedown.
xhr_delay عدد صحيح (ملي ثانية) 200 يتم تحديد مهلة قبل عرض النتائج. ويُعدّ هذا الأمر مفيدًا في الحالات التي يكون فيها mql_filters معقّدًا وقد تستغرِق واجهة برمجة تطبيقات suggest وقتًا أطول أو أكثر من ذلك للإجابة عن التأخير في ترميز البيانات، ما يتسبب في تدهور تجربة المستخدم إلى حد ما والتحميل غير الضروري.
فهرس z عدد صحيح قيمة فارغة تُحدِّد فهرس z لمعظم الحاويات الخارجية (fbs-pane وfbs-flyoutpane). ويُعدّ هذا مفيدًا عند استخدام Freebase suggest في مربّعات الحوار بحيث يتم عرض عناصر اقتراح في الأعلى.

تعديل خدمة CSS

يمكن إلغاء فئات CSS التلقائية التي تستخدمها Freebase suggest من خلال تمرير خريطة القيم البديلة لأسماء فئات CSS باستخدام خيار الإعداد css. يصف الجدول التالي الفئات في CSS التلقائية.

اللوحة الحاوية الخارجية لقائمة "الاقتراح".

الإعداد التلقائي: 'fbs-pane'

list قائمة "اقتراح".

الإعداد التلقائي: 'fbs-list'

item عناصر قائمة "اقتراح".

الإعداد التلقائي: 'fbs-item&#39؛

item_name العنصر الذي يحتوي على اسم السلعة.

الإعداد التلقائي: 'fbs-item-name'

المُختارة العنصر الحالي المميّز/المُختار. الإعداد التلقائي: 'fbs-selected&#39؛
الحالة العنصر الذي يحتوي على رسائل الحالة. الإعداد التلقائي: 'fbs-status&#39؛
item_type (نوع_السلعة) العنصر الذي يحتوي على النوع البارز للعنصر الإعداد التلقائي: 'fbs-item-type&#39؛
flyoutpane الحاوية الخارجية القابلة للطي.

الإعداد التلقائي: 'fbs-flyoutpane'

على سبيل المثال:

$("#myinput").suggest({
  "css": {
    "pane": "custom-pane-class",
    "list": "custom-list-class"
  }
});

آلية عمل الأحداث

تشغّل Freebase suggest الأحداث التالية ضمن سياق الإدخال الذي يتم إعداده معه.

fb-select: عند اختيار عنصر من قائمة"اقتراح". ويرافق الحدث كائن بيانات، حيث يشير data.name وdata.id إلى اسم ورقم تعريف العنصر الذي تم اختياره.

$("#myinput").suggest().bind("fb-select", function(e, data) { ... });

fb-select-new - عند تفعيل الخيار suggest_new، يتم تشغيل هذا الحدث عند اختيار العنصر Suggestion_new. ويرافق الحدث قيمة الإدخال.

$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });

الأسئلة الشائعة والمزيد من المعلومات

نرحّب بالأسئلة وتقارير الأخطاء والملاحظات على مجموعة Google لمطوّري البرامج في Freebase أو قائمة المشاكل (يُرجى اختيار المكوّن "البحث/اقتراح".).

لقد أنشأت للتو موضوعًا جديدًا، ولكنه لا يظهر في "اقتراح" - ما الذي يجري؟

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

الأمثلة ووصفات الطعام

الاستخدام الأساسي

$("#example1")
 .suggest()
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

جرِّب ذلك الآن.

اقتراح عنصر جديد

$("#example2")
 .suggest({
   "suggest_new": "Click on me if you don't see anything in the list"
 })
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
 })
 .bind("fb-select-new", function(e, val) {
   alert("Suggest new: " + val);
 });

جرِّب ذلك الآن.

حصر الاقتراحات باستخدام فلتر

اقتراح أفلام من إخراج "ستيفن سبيلبرغ"

$("#example5")
.suggest({
   "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")"
})
.bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

جرِّب ذلك الآن.

الفلترة من مربّع النص

ويمكن فلترة النتائج عن طريق كتابة أي من قيود الفلتر مباشرةً في مربع "اقتراح". على سبيل المثال، للبحث عن كتب عن الحدائق، جرِّب ما يلي:

gardening type:/book/book
gardening type:book

في الواقع، يمكنك استخدام أي قيود من Search metaschema لفلترة نتائجك. على سبيل المثال، للبحث عن جميع الأشخاص الذين &contributed_to؛&&؛;"حفظ شريف:&quot، جرّب:

contributed_to:"Saving Private Ryan" type:/people/person

وفقًا لخيارات الإعداد، يتم تمرير lang وscoring وspell وexact بشفافية إلى واجهة برمجة تطبيقات "بحث Google". يمكنك أيضًا استبدالها بشكل مضمّن. على سبيل المثال، إذا تم إعداد Freebase suggest باستخدام lang:"en" وكنت تريد أيضًا البحث عن أسماء فرنسية، يمكنك تجربة:

babar lang:fr,en

لمزيد من القيود وقيود البحث، يُرجى الرجوع إلى البحث في كتاب الطبخ.