- מידע על הצעת Freebase
- הוספת הצעה של Freebase לאתר שלכם
- אפשרויות הגדרה
- שינוי שירות ה-CSS
- איך פועלים אירועים?
- מידע נוסף ושאלות נפוצות
- דוגמאות ומתכונים
מידע על Freebase Offer
Freebase Offer הוא פלאגין של jQuery, שמוסיף את ההשלמה האוטומטית של נושא Freebase לתיבות חיפוש באתר שלך. המשתמשים מתחילים להקליד טקסט והווידג'ט מציע התאמות רלוונטיות ממיליוני נושאים ב-Freebase.com או לכל קבוצת משנה של סוגים, כמו 'אנשים', 'מיקומים' או 'בעלי חיים'. שהם צורכים פריטים, הם עוזרים למשתמשים לבחור את הפריט הנכון שזוהה באופן ייחודי באמצעות מזהה Freebase.
תכונות
- דפדפן חוצה – מבוסס על jQuery, נבדק ב-IE7+, FF2+, Safari 3+ ו-Chrome (גרסת jquery מינימלית היא 1.4.4)
- בכמה דומיינים. אין צורך בשרתי proxy בגלל JSONP.
- אירוח של Google בכתובת gstatic.com
- חינם! (בכפוף לתנאים הרגילים של Freebase ולתנאים של Google Developer API).
הצעת Freebase בטבע
אתרים שידועים בשימוש בהצעה של Freebase:
- ביקורות של WSJ Books
- ContentTagger.org – הדגמה של תיוג בעיתון של האפוטרופוס
- geolocation.ws – תיוג תמונות לישויות של Freebase
למה כדאי להשתמש בהצעה של Freebase?
- בעזרת ההשלמה האוטומטית, המשתמשים מקלידים פחות כדי להזין נתונים נוספים.
- הזנת הנתונים מהנה ומדויקת!
- הפחתת העומס הקוגניטיבי על המשתמשים בעזרת התמונות והתיאורים שעוסקים בנושאים האלו.
- השתמשו במזהים חזקים במקום במילות מפתח בטקסט. השם "Sting" אינו ברור, אבל מזהי Freebase
/en/sting
ו-/en/sting_1959
לא ברורים. - יש להימנע משמות כפולים של אותה ישות. פאף אבאי, פ. דידי, שבטי שון, כולם מתייחסים ל
/en/sean_combs
.
הוספת הצעה של Freebase לאתר שלך
כדי להוסיף הצעה של Freebase לדף האינטרנט שלך, יש לכלול את הקוד הבא במקור האתר שלך. יש לך גם אפשרות להשיג מפתח API ולהשתמש בו כדי להרחיב את הפונקציונליות של Freebase Offer.
קוד שצריך לכלול באתר
יש לכלול את הפרטים הבאים ב-<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"/>
קבלת מפתח API
השגת מפתח API מאפשרת לאפליקציה שלך לשלוח בקשות 'הצעה'. ללא מפתח API, הווידג'ט יפעל למטרות בדיקה מוגבלות. כדי לקבל מפתח, מבצעים את ההוראות בדף תחילת העבודה.
לאחר קבלת מפתח, יש להעביר אותו ל-Freebase Offer עם משהו כזה:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
אפשרויות הגדרה
הטבלה הבאה מתארת את אפשרויות התצורה עבור Freebase Offer.
שם | סוג | ברירת מחדל | תיאור |
---|---|---|---|
מתקדם | בוליאני | נכון | אם True, ההצעה של Freebase תנתח ותטפל בזוגות name:value מוטבעים בקלט כאילוצי סינון נוספים. לדוגמה, בשדה 'bob type:artist contributed_to:"Love and Theft"' , אילוץ מסנן נוסף יועבר אל '(all type:artist contributed_to:"Love and Theft")' . בנוסף, כשהאפשרות מוגדרת כ-TRUE, התכונה Freebase suggest תזהה את מזהי Freebase ו-MIDS כדי שאפשר יהיה לחפש ישות ישירות לפי המזהה שלה או לפי ה-MID. |
מדויקת | בוליאני | לא נכון | אם True, הפרמטר מציין שה-Search API מחזיר רק התאמות מדויקות (של מה'בקלט). הערך הזה מועבר באופן שקוף ל-Search API. |
סינון | String | null | כאן מציינים אילוצי ברירת מחדל של מסנני חיפוש יועברו באופן שקוף ל-Search API כפרמטרים של סינון. לדוגמה, כדי להגביל את ההצעה של Freebase לחיפוש רק בקולג'ים ו/או באוניברסיטאות, יש להשתמש בפרמטר "(all type:/education/university) " כמסנן. הרשימה המקיפה של מסנני החיפוש הזמינים מופיעה ב-Search API או מגבלות טקסט. |
מקש | String | null | יש לספק מפתח API עבור ממשק ה-API המוגדר כברירת מחדל עבור החיפוש, שצוין על ידי service_url + service_path . ניתן להוריד אותן דרך מסוף ה-APIs. |
lang | String | null | הפרמטר lang מקבל רשימה המופרדת בפסיקים של קודי שפה שגורמים לחיפוש להיות בכל השפות שצוינו, והתוצאות מדורגות בדירוג הראשון בשפה הרשומה ומוצגות בשפה הראשונה של הרשימה שיש לה שם לישות. לאנגלית יש כיסוי נרחב ביותר, וזו שפת ברירת המחדל. הערך הזה מועבר באופן שקוף ל-Search API. |
ניקוד | String | null | הפרמטר scoring מאפשר לקבוע אילו רכיבים של ציון הרלוונטיות ישמשו לחישוב התוצאה הסופית. הערך הזה מועבר באופן שקוף ל-Search API.
|
איות | String | always |
הערכים החוקיים הם always , no_results , no_spelling . אם תתקבל בקשה לאיות והחיפוש יחזיר תיקון איות, תכונת Freebase Offer תציג את התיקון ברשימת 'הצעות'. הערך הזה מועבר באופן שקוף לשירות החיפוש. |
Flyout | בוליאני, bottom |
נכון | הגדרה זו קובעת אם להציג תיאור מרחף בעת העברת העכבר מעל. אם מופיע הסמל bottom , יש להציג את החלק התחתון של רשימת ההצעות. אם הרשימה 'הצעות' מוצגת מעל לתיבת הקלט, רשימת השקפים מוצגת בחלק העליון של הרשימה. אם True, ההצעה תשתדל כמיטב יכולתה להציג את הנשימה משמאל או מימין לרשימה.
|
suggest_new | String | null | טקסט שיוצג מתחת לרשימת ההצעות. בעת בחירה, fb-select-new מופעל. |
css | התנגדות | החלפת שמות ברירת המחדל של מחלקות CSS המשמשות באלמנטים השונים של Freebase Offer. פרטים נוספים זמינים במאמר שינוי שירות ה-CSS. | |
css_prefix | String | null | אפשר לציין קידומת שתצורף מראש לשמות המחלקות של רכיבי 'הצעה'. לדוגמה, אם css_prefix הוא "foo- " שמות הקונטיינר יהיו css_prefix "foo-fbs-pane "foo-fbs-flyoutpane ". |
מזהה_התוכנית | בוליאני | נכון | מציג את הערך 'notable ' מוחזר על ידי חיפוש. עם זאת, אם הוא לא זמין ונכון, הוא מציג את מזהה הפריט. |
_service_url | String | הערך הוא https://www.googleapis.com/freebase/v1 |
זוהי כתובת ה-URL הבסיסית של שירות Google Offers. |
נתיב_שירות | String | /search |
service_url + service_path = כתובת ה-URL של שירות Google Offers. |
flyout_service_url | String | null | כתובת ה-URL הבסיסית של השירות הנשלף. אם הערך הוא null, ברירת המחדל היא service_url . |
נתיב flyout_service_path | String | הערך הוא /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} |
flyout_service_url + flyout_service_path = כתובת ה-URL של שירות "flyout". '${id} ' and '{key} ' מוחלפים במזהה הפריט המרחף ובמפתח ה-API, בהתאמה. |
flyout_image_service_url | String | null | כתובת ה-URL הבסיסית של התמונה ב-fly. אם הערך הוא null, ברירת המחדל היא service_url . |
flyout_image_service_path | String | הערך הוא /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png |
flyout_image_service_url + flyout_image_service_path = כתובת ה-URL של שירות התמונות. '${id} ' ו-'{key} ' יוחלפו במזהה הפריט המרחף ובמפתח ה-API, בהתאמה. |
flyout_parent | מחרוזת (בורר jQuery) | null | כברירת מחדל, המאגר הנשלף מצורף לגוף המסמך וממוקם באופן מוחלט. ה-flyout_parent מציין הורה אחר והצף לא ימוקם באופן מוחלט. |
יישור | String | null | אם המדיניות align לא מוגדרת, רשימת ההצעות משתלבת עם "left" או "right"בתיבת הקלט, בהתאם למיקום שלה במסמך. כדי לבטל את ההתנהגות הזו ולהגדיר את ההתאמה שלה באופן מפורש, יש להגדיר את align כ-"left " או "right ". |
סטטוס | מערך[4](מחרוזת) | ["התחילו להקליד כדי לקבל הצעות..." "Search...", "בחר פריט מהרשימה:", "מצטערים, משהו השתבש. כדאי לנסות שוב מאוחר יותר"] | הודעות סטטוס שמופיעות בארבעת השלבים השונים של הצעות; [0] כשתיבת הקלט ריקה וממוקדת. [1] בעת אחזור התוצאות, [2] בעת הצגת התוצאות, [3] כאשר מופיעה שגיאה משירות suggest. אפשר לשנות את הודעות ברירת המחדל של הסטטוס על ידי העברה במערך מחרוזת אחר של 4 השלבים השונים. |
הורה | מחרוזת (בורר jQuery) | null | כברירת מחדל, רשימת ההצעות מצורפת לגוף המסמך וממוקמת במיקום מוחלט. משתמשים ב-parent כדי לציין הורה אחר והרשימה לא תמוקם באופן מוחלט. |
אנימציה | בוליאני | לא נכון | אם True, הצגת רשימת ההצעות תופיע באנימציה באמצעות אפקט jQuery downdown. |
xhr_delay | מספר שלם (אלפיות השנייה) | 200 |
מציין עיכוב לפני החזרת תוצאות. פעולה זו שימושית במקרים שבהם mql_filters הוא מורכב, וייתכן שלזמן ההצעה ב-API תהיה יותר זמן או זמן תשובה מאשר בעיכוב בתוך הקוד, מה שגורם לחוויית משתמש שפגומה במידה מסוימת ולעומס מיותר. |
אינדקס Zz | מספר שלם | null | מגדיר את אינדקס ה-z של רוב הפריטים החיצוניים החיצוניים (fbs-pane , fbs-flyoutpane ). השדה הזה שימושי בעת שימוש בהצעה של Basebase בתיבות דו-שיח כדי שרכיבי 'הצעה' יוצגו בחלק העליון. |
שינוי שירות ה-CSS
ניתן לעקוף את מחלקות ה-CSS המוגדרות כברירת מחדל שבהן נעשה שימוש ב-Freebase Offer על ידי העברת מפה של ערכים חלופיים עבור שמות מחלקות CSS באמצעות אפשרות ההגדרה css. הטבלה הבאה מתארת את הכיתות בשירות ה-CSS המוגדר כברירת מחדל.
חלונית | מאגר התגים החיצוני של רשימת ההצעות.
ברירת מחדל: ' |
list | רשימת ההצעות.
ברירת מחדל: ' |
פריט | הפריטים של רשימת ההצעות.
ברירת מחדל: ' |
item_name | הרכיב שמכיל את שם הפריט.
ברירת מחדל: ' |
נבחר | הפריט המודגש/הנבחר הנוכחי. ברירת מחדל: 'fbs-selected '. |
סטטוס | הרכיב שמכיל את הודעות הסטטוס. ברירת מחדל: 'fbs-status '. |
item_type | הרכיב שמכיל את הסוג הבולט של פריט. ברירת מחדל: 'fbs-item-type '. |
Flyoutpane | הקונטיינר החיצוני הנשלף.
ברירת מחדל: ' |
למשל:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
הסבר על אירועים
Freebase Offer מפעיל את האירועים הבאים בהקשר של הקלט שאיתו הוא מופעל.
fb-select
- כאשר פריט נבחר מרשימת ההצעות. האירוע מלווה באובייקט נתונים שבו data.name
ו-data.id
מייצגים את השם והמזהה של הפריט שנבחר.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
- כשהאפשרות suggest_new
מופעלת, האירוע הזה מופעל כשנבחר הפריט item_new. האירוע מלווה בערך הקלט.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
שאלות נפוצות ומידע נוסף
שאלות, דוחות על באגים ומשוב זמינים בברכה בקבוצת Google למפתחים של Freebase או ברשימת הבעיות (יש לבחור את הרכיב "Search/suggest").
- יצרתי נושא חדש, אך הוא לא מופיע ב'הצעה' – מה קורה?
הצעת Freebase משתמשת ב-Search API כדי לספק את התוצאות, ומתעדכן כמעט בזמן אמת. בדרך כלל נושאים חדשים מופיעים בתוך כדקה, אך משך הזמן הזה עשוי להיות ארוך יותר אם המערכת עמוסה.
דוגמאות ומתכונים
- מתכונים ל-Freebase – נשמח לקבל טיפים לגבי השימוש ב-Offer ב-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
מועברים בשקיפות לממשק ה-API של החיפוש. אפשר גם להחליף אותן במקום. לדוגמה, אם Freebase suggest מופעל עם lang:"en"
ואתם רוצים לחפש גם שמות צרפתיים, נסו:
babar lang:fr,en
למגבלות נוספות של סינון וחיפוש, יש לעיין באוסף הפתרונות של חיפוש Google.