- لمحة عن Freebase suggest
- إضافة Freebase suggest إلى موقعك الإلكتروني
- خيارات الإعداد
- تعديل خدمة CSS
- آلية عمل الأحداث
- مزيد من المعلومات والأسئلة الشائعة
- أمثلة ووصفات طعام
لمحة عن Freebase suggest
Freebase suggest هو مكوّن إضافي في jQuery يضيف الإكمال التلقائي للموضوع Freebase إلى مربعات البحث على موقعك. يبدأ المستخدمون كتابة النص، وتقترح الأداة نتائج ذات صلة من ملايين المواضيع على Freebase.com أو أي مجموعة فرعية من الأنواع مثل الأشخاص أو المواقع أو الحيوانات. تساعد نشرات المواضيع المستخدم على اختيار العنصر الصحيح المُعرّف بشكل فريد عن طريق معرّف Freebase.
الميزات
- الاعتماد على متصفّح، استنادًا إلى jQuery، الذي تم اختباره على IE7+ وFF2+ وSafari 3+ وChrome (إصدار jquery الأدنى هو 1.4.4)
- على جميع النطاقات. لا حاجة إلى خوادم وكيلة بفضل JSONP.
- تستضيفها Google على gstatic.com
- مجانا! (تنطبق بنود Freebase وبنود واجهة برمجة تطبيقات Google Developer العادية).
Freebase suggest في البرية
المواقع الإلكترونية المعروفة باستخدام Freebase suggest:
- مراجعات كتب WSJ
- ContentTagger.org - إصدار تجريبي لوضع العلامات من صحيفة Guardian
- c0sm.org: أضِف المشاهير إلى c0sm.
- geolocation.ws: وضع علامات على الصور باستخدام كيانات Freebase
لماذا تُستخدم 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_1/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_1/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 التحكم في مكونات نتيجة مدى الصلة المستخدمة لاحتساب النتيجة النهائية. يتم تمرير هذه القيمة بوضوح إلى واجهة برمجة تطبيقات البحث.
|
تَعْلِيمَة | سلسلة | 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 | منطقي | صواب | تعرض القيمة '؛notable '؛ التي يعرضها البحث. أمّا إذا لم تكن متوفّرة وكان ذلك صحيحًا، فسيتم عرض معرّف السلعة. |
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 | سلسلة | القيمة هي /topic${id}?filter=suggest&limit=3&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} | 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 التلقائية.
اللوحة | الحاوية الخارجية لقائمة "الاقتراح".
الإعداد التلقائي: ' |
list | قائمة "اقتراح".
الإعداد التلقائي: ' |
item | عناصر قائمة "اقتراح".
الإعداد التلقائي: ' |
item_name | العنصر الذي يحتوي على اسم السلعة.
الإعداد التلقائي: ' |
المُختارة | العنصر الحالي المميّز/المُختار. الإعداد التلقائي: 'fbs-selected '؛ |
الحالة | العنصر الذي يحتوي على رسائل الحالة. الإعداد التلقائي: 'fbs-status '؛ |
item_type (نوع_السلعة) | العنصر الذي يحتوي على النوع البارز للعنصر الإعداد التلقائي: 'fbs-item-type '؛ |
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 واجهة برمجة تطبيقات البحث لتقديم نتائجها، ويتم تحديثها في الوقت الفعلي تقريبًا. تظهر المواضيع الجديدة عادةً في غضون دقيقة تقريبًا، ولكن قد يستغرق ظهورها وقتًا أطول إذا كان النظام يواجه عبئًا كبيرًا.
الأمثلة ووصفات الطعام
- Freebase suggest Recipes - شارك نصائحك حول استخدام suggest على Wiki.
الاستخدام الأساسي
$("#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
؛&&؛;"حفظ شريف:"، جرّب:
contributed_to:"Saving Private Ryan" type:/people/person
وفقًا لخيارات الإعداد، يتم تمرير lang
وscoring
وspell
وexact
بشفافية إلى واجهة برمجة تطبيقات "بحث Google". يمكنك أيضًا استبدالها بشكل مضمّن. على سبيل المثال، إذا تم إعداد Freebase suggest باستخدام lang:"en"
وكنت تريد أيضًا البحث عن أسماء فرنسية، يمكنك تجربة:
babar lang:fr,en
لمزيد من القيود وقيود البحث، يُرجى الرجوع إلى البحث في كتاب الطبخ.