ווידג'ט חיפוש של Freebase

  1. מידע על הצעת Freebase
  2. הוספת הצעה של Freebase לאתר שלכם
  3. אפשרויות הגדרה
  4. שינוי שירות ה-CSS
  5. איך פועלים אירועים?
  6. מידע נוסף ושאלות נפוצות
  7. דוגמאות ומתכונים

מידע על Freebase Offer

Freebase Offer הוא פלאגין של jQuery, שמוסיף את ההשלמה האוטומטית של נושא Freebase לתיבות חיפוש באתר שלך. המשתמשים מתחילים להקליד טקסט והווידג'ט מציע התאמות רלוונטיות ממיליוני נושאים ב-Freebase.com או לכל קבוצת משנה של סוגים, כמו 'אנשים', 'מיקומים' או 'בעלי חיים'. שהם צורכים פריטים, הם עוזרים למשתמשים לבחור את הפריט הנכון שזוהה באופן ייחודי באמצעות מזהה Freebase.

Freebase suggest.png

תכונות

רוצים לנסות?

הצעת Freebase בטבע

אתרים שידועים בשימוש בהצעה של 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.
  • entity: שימוש בציונים ללא תשלום ובציונים רלוונטיים של Google, כאשר ציון ברירת המחדל של Google הוא 1.0. זוהי אפשרות ברירת המחדל.
  • freebase: משתמשים רק בציון הרלוונטיות של Freebase.
  • schema: המאפיין הזה משמש כשמחפשים ישויות סכימה כמו סוגים, נכסים או דומיינים. ספירת הקישורים של ישויות הסכימה מחושבת באופן שונה.
איות 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 המוגדר כברירת מחדל.

חלונית מאגר התגים החיצוני של רשימת ההצעות.

ברירת מחדל: 'fbs-pane'

list רשימת ההצעות.

ברירת מחדל: 'fbs-list'

פריט הפריטים של רשימת ההצעות.

ברירת מחדל: 'fbs-item'.

item_name הרכיב שמכיל את שם הפריט.

ברירת מחדל: 'fbs-item-name'

נבחר הפריט המודגש/הנבחר הנוכחי. ברירת מחדל: 'fbs-selected'.
סטטוס הרכיב שמכיל את הודעות הסטטוס. ברירת מחדל: 'fbs-status'.
item_type הרכיב שמכיל את הסוג הבולט של פריט. ברירת מחדל: 'fbs-item-type'.
Flyoutpane הקונטיינר החיצוני הנשלף.

ברירת מחדל: 'fbs-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 כדי לספק את התוצאות, ומתעדכן כמעט בזמן אמת. בדרך כלל נושאים חדשים מופיעים בתוך כדקה, אך משך הזמן הזה עשוי להיות ארוך יותר אם המערכת עמוסה.

דוגמאות ומתכונים

שימוש בסיסי

$("#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.