วิดเจ็ตแนะนํา Freebase

  1. เกี่ยวกับการแนะนํา Freebase
  2. เพิ่มคําแนะนํา Freebase ลงในเว็บไซต์ของคุณ
  3. ตัวเลือกการกําหนดค่า
  4. การแก้ไข CSS
  5. วิธีการทํางานของกิจกรรม
  6. ข้อมูลเพิ่มเติมและคําถามที่พบบ่อย
  7. ตัวอย่างและสูตรอาหาร

เกี่ยวกับการแนะนํา Freebase

Freebase suggest เป็นปลั๊กอินของ jQuery ที่เพิ่มการเติมข้อความอัตโนมัติของหัวข้อ Freebase ลงในช่องค้นหาในเว็บไซต์ของคุณ ผู้ใช้เริ่มพิมพ์ข้อความและวิดเจ็ตจะแนะนํารายการที่ตรงกันที่เกี่ยวข้องจากหัวข้อนับล้านบน Freebase.com หรือชุดย่อยบางประเภท เช่น ผู้คน สถานที่ตั้ง หรือสัตว์ ตัวอย่างหัวข้อจะช่วยผู้ใช้เลือกรายการที่ถูกต้องซึ่งระบุโดยไม่ซ้ํากันได้โดยใช้รหัสฐานฟรี

แนะนํา Freebase PNG

ฟีเจอร์

  • ข้ามเบราว์เซอร์ - อิงตาม jQuery ทดสอบกับ IE7+, FF2+, Safari 3+ และ Chrome (เวอร์ชัน jquery ต่ําสุดคือ 1.4.4)
  • ข้ามโดเมน ไม่ต้องใช้พร็อกซีเซิร์ฟเวอร์เนื่องจาก JSONP
  • โฮสต์โดย Google ใน gstatic.com
  • ฟรี! (ใช้ข้อกําหนดของ Freebase แบบมาตรฐานและข้อกําหนดของ Google Developer API)

ลองใช้เลย

การแนะนําฟรีเบสในป่า

เว็บไซต์ที่ใช้การแนะนําพื้นฐานฟรี:

เหตุใดจึงใช้ Freebase Advisor

  • ฟีเจอร์เติมข้อความอัตโนมัติช่วยให้ผู้ใช้พิมพ์น้อยลงเพื่อป้อนข้อมูลเพิ่มเติม
  • การป้อนข้อมูลที่สนุกและถูกต้อง
  • ลดปัญหาการรับรู้ของผู้ใช้ด้วยรูปภาพและคําอธิบายในคําอธิบายโดยย่อของหัวข้อ
  • ใช้ตัวระบุที่ชัดเจนแทนคีย์เวิร์ดแบบข้อความ ชื่อ "Sting" ไม่ชัดเจน แต่รหัส Freebase /en/sting และ /en/sting_1959 ไม่ใช่
  • หลีกเลี่ยงการใช้ชื่อซ้ํากันในเอนทิตีเดียวกัน Puff Daddy, P. นักบุญ, Sean Combs กล่าวถึง /en/sean_combs ทั้งหมด

การเพิ่มการแนะนํา Freebase ไปยังเว็บไซต์ของคุณ

หากต้องการเพิ่มคําแนะนําฟรีในหน้าของคุณ ให้ใส่โค้ดต่อไปนี้ในซอร์สโค้ดของเว็บไซต์ คุณยังอาจได้รับและใช้คีย์ API เพื่อขยายฟังก์ชันการทํางานของ 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"/>

การรับคีย์ API

การรับคีย์ API จะช่วยให้แอปพลิเคชันส่งคําขอคําแนะนําได้ เมื่อไม่มีคีย์ API วิดเจ็ตจะใช้งานได้สําหรับการทดสอบแบบจํากัด หากต้องการซื้อคีย์ โปรดทําตามวิธีการในหน้าเริ่มต้นใช้งาน

เมื่อได้รับคีย์แล้ว ให้ส่งต่อไปที่คําแนะนําของ Freebase พร้อมกับข้อความประมาณนี้

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

ตัวเลือกการกำหนดค่า

ตารางต่อไปนี้จะอธิบายตัวเลือกการกําหนดค่าสําหรับการแนะนํา Freebase

ชื่อ ประเภท ค่าเริ่มต้น คำอธิบาย
ขั้นสูง บูลีน จริง หากเป็น "จริง" คําแนะนํา Freebase จะแยกวิเคราะห์และจัดการคู่ name:value ในบรรทัดในอินพุตเป็นข้อจํากัดตัวกรองเพิ่มเติม เช่น สําหรับ 'bob type:artist contributed_to:"Love and Theft"' จะส่งตัวกรองเพิ่มเติมซึ่งมีการส่ง '(all type:artist contributed_to:"Love and Theft")' ไปยังการค้นหา นอกจากนี้ เมื่อขั้นสูงเป็นจริง Freebase พร้อมให้บริการจะจดจํารหัส FreeID และ MID เพื่อให้สามารถค้นหาเอนทิตีจากรหัสหรือ MID ได้โดยตรง
แบบตรงทั้งหมด บูลีน เท็จ หากเป็น "จริง" แสดงว่า Search API แสดงผลเฉพาะการทํางานแบบตรงทั้งหมดเท่านั้น (จากอินพุต) ค่านี้จะส่งผ่านไปยัง API การค้นหาอย่างโปร่งใส
ฟิลเตอร์ สตริง null ระบุข้อจํากัดตัวกรองการค้นหาเริ่มต้นซึ่งจะส่งผ่านไปยัง API การค้นหาอย่างโปร่งใสในฐานะพารามิเตอร์ตัวกรอง เช่น หากต้องการจํากัดการค้นหา Freebase เพื่อค้นหาเฉพาะวิทยาลัยและ/หรือมหาวิทยาลัย ให้ใช้ "(all type:/education/university)" เป็นตัวกรอง ดู Search API หรือ Textal ConsRestrictionss สําหรับรายการตัวกรองการค้นหาที่ใช้ได้ทั้งหมด
แป้น สตริง null ระบุคีย์ API สําหรับ Search API เริ่มต้นที่ระบุโดย service_url + service_path คุณสามารถดาวน์โหลดได้จาก คอนโซล API
lang สตริง null พารามิเตอร์ lang ยอมรับรายการรหัสภาษาที่คั่นด้วยเครื่องหมายจุลภาคซึ่งทําให้เกิดการค้นหาในทุกภาษาที่ระบุและจัดอันดับผลการค้นหาเป็นภาษาแรกในรายการและแสดงเป็นภาษาที่ 1 ของรายการที่มีชื่อสําหรับเอนทิตี ปัจจุบันระบบรองรับ 18 ภาษา ได้แก่ en (ภาษาอังกฤษ), es (spanish), fr (french), de (เยอรมัน), it (อิตาลี), pt (portuguese), zh (chinese), ja (japanese), ko (korean), ru (russian), sv (swedish), fi (finish), da (denish (ish) ภาษาอังกฤษครอบคลุมพื้นที่มากที่สุดและเป็นภาษาเริ่มต้น ค่านี้จะส่งผ่านไปยัง API การค้นหาอย่างโปร่งใส
การให้คะแนน สตริง null พารามิเตอร์ scoring ช่วยในการควบคุมคอมโพเนนต์คะแนนความเกี่ยวข้องที่ใช้ในการคํานวณคะแนนสุดท้าย ค่านี้จะส่งผ่านไปยัง API การค้นหาอย่างโปร่งใส
  • entity: ใช้ทั้งคะแนน FREEBASE และคะแนนความเกี่ยวข้องของ Google โดยค่าเริ่มต้นคะแนน Google ที่ขาดหายไปคือ 1.0 ตัวเลือกนี้คือค่าเริ่มต้น
  • freebase: ใช้คะแนนความเกี่ยวข้องของ Freebase เท่านั้น
  • schema: ใช้เมื่อค้นหาเอนทิตีของสคีมา เช่น ประเภท พร็อพเพอร์ตี้ หรือโดเมน จํานวนลิงก์ของเอนทิตีสคีมามีการคํานวณต่างกัน
สะกด สตริง always ค่าที่ถูกต้องคือ always, no_results, no_spelling หากมีการขอตัวสะกดและการค้นหานั้นมีการแก้ไขตัวสะกด คําแนะนําจาก Freebase จะแสดงการแก้ไขในรายการคําแนะนํา ระบบจะส่งค่านี้ไปยังบริการค้นหาอย่างโปร่งใส
การบิน บูลีน bottom จริง กําหนดว่าจะแสดงคําอธิบายการบินเมื่อวางเมาส์เหนือข้อความหรือไม่ หากเป็น bottom ให้แสดงไอคอนเลื่อนที่ด้านล่างของรายการคําแนะนํา หากรายการคําแนะนําแสดงเหนือกล่องอินพุต สัญญาณบอกสถานะจะแสดงที่ด้านบนของรายการ หาก "จริง" ระบบแนะนําจะทํางานอย่างดีที่สุดเพื่อแสดงการบินออกทางด้านซ้ายหรือขวาของรายการ
แนะนําใหม่ สตริง null ข้อความที่จะแสดงใต้รายการคําแนะนํา ระบบจะทริกเกอร์ fb-select-new เมื่อมีการเลือก
CSS วัตถุ เขียนทับชื่อคลาส CSS เริ่มต้นที่ใช้สําหรับองค์ประกอบคําแนะนํา Freebase ต่างๆ ดูรายละเอียดในการแก้ไข CSS
คํานําหน้า CSS สตริง null คุณจะระบุคํานําหน้าให้มีคํานําหน้าชื่อคลาสขององค์ประกอบคําแนะนําได้ล่วงหน้า เช่น หาก css_prefix คือ "foo-" ชื่อคอนเทนเนอร์จะเป็น "foo-fbs-pane" และ "foo-fbs-flyoutpane"
show_id บูลีน จริง แสดง 'notable' ค่าที่แสดงผลจากการค้นหา อย่างไรก็ตาม หากไม่มีจําหน่ายและเป็นความจริง จะแสดงรหัสของสินค้าดังกล่าว
URL บริการ สตริง ค่าคือ https://www.googleapis.com/freebase/v1 นี่คือ URL พื้นฐานสําหรับบริการ suggest
เส้นทางบริการ สตริง /search service_url + service_path = URL ไปยังบริการคําแนะนํา
Flyout_service_url สตริง null URL ฐานสําหรับบริการ Flyout หากเป็น Null ค่าเริ่มต้นคือ service_url
เส้นทางบริการ flyout_service_path สตริง ค่าคือ /topic${id}?filter=suggest&limit=3&key=${key} flyout_service_url + flyout_service_path = URL ไปยังบริการเที่ยวบิน '${id}' และ '{key}' จะถูกแทนที่ด้วยรหัสรายการที่วางเมาส์เหนือและคีย์ API ตามลําดับ
Flyout_image_service_url สตริง null URL ฐานของรูปภาพในฟลายไลท์ หากเป็น Null ค่าเริ่มต้นคือ service_url
เส้นทางบริการรูปภาพ flyout_image_service_path สตริง /image${id}?maxwidth=75&key=${key} flyout_image_service_url + flyout_image_service_path = URL ไปยังบริการรูปภาพ '${id}' และ '{key}' จะถูกแทนที่ด้วยรหัสรายการที่วางเมาส์เหนือและคีย์ API ตามลําดับ
ลายบินได้ สตริง (ตัวเลือก jQuery) null โดยค่าเริ่มต้น คอนเทนเนอร์ของ Flyout จะต่อท้ายเนื้อหาเอกสารและอยู่ในตําแหน่งที่แน่นอน flyout_parent จะระบุระดับบนสุดอื่น จากนั้นการกําหนดตําแหน่งคร่าวๆ จะไม่อยู่ในตําแหน่งที่ถูกต้อง
จัดข้อความ สตริง null หากไม่ได้ตั้งค่า align ไว้ รายการคําแนะนําจะสอดคล้องกับ &&tt;ซ้าย " หรือ"ขวา" ของกล่องป้อนข้อมูล โดยขึ้นอยู่กับตําแหน่งของเอกสารในเอกสาร หากต้องการลบล้างลักษณะการทํางานนี้และตั้งค่าการตรวจสอบอย่างชัดแจ้ง ให้ตั้งค่า align เป็น "left" หรือ "right"
สถานะ อาร์เรย์[4](สตริง) ["เริ่มพิมพ์เพื่อรับคําแนะนํา...", "กําลังค้นหา...", "เลือกรายการจากรายการ:", "ขออภัย มีบางอย่างผิดพลาด โปรดลองอีกครั้งในภายหลัง"] ข้อความสถานะที่ปรากฏใน 4 ระดับของ suggest; [0] เมื่อช่องป้อนข้อมูลว่างเปล่าและโฟกัส [1] เมื่อเรียกข้อมูลผลลัพธ์ [2] เมื่อแสดงผลลัพธ์ [3] เมื่อมีข้อผิดพลาดจากบริการแนะนํา คุณสามารถลบล้างข้อความสถานะเริ่มต้นเหล่านี้ได้โดยส่งอาร์เรย์อื่นๆ ของสตริงที่เกี่ยวข้องกับ 4 สถานะ
ระดับบนสุด สตริง (ตัวเลือก jQuery) null โดยค่าเริ่มต้น รายการคําแนะนําจะต่อท้ายเนื้อหาเอกสารและจัดตําแหน่งไว้แน่นอน ใช้ parent เพื่อระบุระดับบนสุดอื่นและรายการจะวางตําแหน่งไม่ได้อย่างสมบูรณ์
เคลื่อนไหว บูลีน เท็จ หากเป็น "จริง" การแสดงรายการคําแนะนําจะเป็นภาพเคลื่อนไหวโดยใช้เอฟเฟกต์ jQuery Slidesdown
xhr_delay จํานวนเต็ม (มิลลิวินาที) 200 ระบุการหน่วงเวลาก่อนแสดงผลลัพธ์ ฟังก์ชันนี้มีประโยชน์ในกรณีที่ mql_filters ซับซ้อนและ suggest API อาจใช้เวลาตอบมากกว่าหรือช้ากว่าการฮาร์ดโค้ดแบบฮาร์ดโค้ด ทําให้ผู้ใช้ได้รับประสบการณ์ที่ค่อนข้างแย่และโหลดโดยไม่จําเป็น
ดัชนีลําดับ จำนวนเต็ม null ตั้งค่าดัชนีลําดับ Z ของคอนเทนเนอร์ภายนอกส่วนใหญ่ (fbs-pane, fbs-flyoutpane) ซึ่งจะเป็นประโยชน์เมื่อใช้คําแนะนําจาก Freebase ในกล่องโต้ตอบเพื่อให้องค์ประกอบ แนะนํา แสดงอยู่ด้านบน

การแก้ไข CSS

คุณสามารถลบล้างคลาส CSS เริ่มต้นที่ใช้โดย Freebase suggest ได้โดยส่งค่าอื่นสําหรับชื่อคลาส CSS ที่แมปไว้โดยใช้ตัวเลือกการกําหนดค่า css ตารางต่อไปนี้อธิบายคลาสใน CSS เริ่มต้น

แผง คอนเทนเนอร์ภายนอกของรายการคําแนะนํา

ค่าเริ่มต้น: 'fbs-pane'

list รายการคําแนะนํา

ค่าเริ่มต้น: 'fbs-list'

รายการ [item] รายการคําแนะนํา

ค่าเริ่มต้น: 'fbs-item'

item_name องค์ประกอบที่มีชื่อสินค้า

ค่าเริ่มต้น: 'fbs-item-name'

เลือกไว้ รายการที่ไฮไลต์/เลือกอยู่ในปัจจุบัน ค่าเริ่มต้น: 'fbs-selected'
สถานะ องค์ประกอบที่มีข้อความสถานะ ค่าเริ่มต้น: 'fbs-status'
ประเภทรายการ [item_type] องค์ประกอบที่มีประเภทสําคัญของสินค้า ค่าเริ่มต้น: 'fbs-item-type'
สะพานลอย คอนเทนเนอร์ด้านนอกของฟลายเอาท์

ค่าเริ่มต้น: 'fbs-flyoutpane'

ตัวอย่าง

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

วิธีการทํางานของกิจกรรม

คําแนะนําจาก Freebase จะทริกเกอร์เหตุการณ์ต่อไปนี้ภายในบริบทของอินพุตที่เริ่มต้น

fb-select - เมื่อเลือกสินค้าจากรายการแนะนํา เหตุการณ์จะมาพร้อมกับออบเจ็กต์ข้อมูลที่ data.name และ data.id แสดงถึงชื่อและรหัสของรายการที่เลือก

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

fb-select-new - เมื่อเปิดใช้ตัวเลือก suggest_new เหตุการณ์นี้จะทริกเกอร์เมื่อเลือกรายการ recommendation_new เหตุการณ์จะมาพร้อมกับค่าอินพุต

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

คําถามที่พบบ่อยและข้อมูลเพิ่มเติม

ถามคําถาม รายงานข้อบกพร่อง และความคิดเห็นได้ในกลุ่มนักพัฒนาฟรีของ Google หรือรายการปัญหา (เลือกองค์ประกอบ "Search/suggest")

ฉันเพิ่งสร้างหัวข้อใหม่ แต่หัวข้อนั้นไม่ปรากฏในคําแนะนํา - เกิดอะไรขึ้น

ข้อเสนอ Freebase ใช้ Search API เพื่อแสดงผลการค้นหาและมีการอัปเดตแบบเกือบเรียลไทม์ หัวข้อใหม่ๆ มักจะปรากฏขึ้นภายในเวลาประมาณ 1 นาที แต่อาจใช้เวลานานกว่านั้นหากระบบทํางานช้า

ตัวอย่างและสูตรอาหาร

การใช้งานพื้นฐาน

$("#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);
 });

ลองใช้เลย

คําแนะนําที่จํากัดโดยใช้ตัวกรอง

แนะนําภาพยนตร์ที่กํากับโดย Steven Spielberg

$("#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" ภาพยนตร์ "กําลังบันทึก Ryan ส่วนตัว" ให้ลองทําดังนี้

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

ดังที่ระบุไว้ในตัวเลือกการกําหนดค่า lang, scoring, spell, exact จะส่งผ่านไปยัง Search API อย่างโปร่งใส นอกจากนี้คุณยังเขียนทับในหน้าได้ ตัวอย่างเช่น หาก Freebase suggest เริ่มต้นด้วย lang:"en" และคุณต้องการค้นหาชื่อภาษาฝรั่งเศสด้วย ให้ลองทําดังนี้

babar lang:fr,en

สําหรับข้อจํากัดเพิ่มเติมในการค้นหาและการกรอง โปรดดูตําราการค้นหา