- เกี่ยวกับการแนะนํา Freebase
- เพิ่มคําแนะนํา Freebase ลงในเว็บไซต์ของคุณ
- ตัวเลือกการกําหนดค่า
- การแก้ไข CSS
- วิธีการทํางานของกิจกรรม
- ข้อมูลเพิ่มเติมและคําถามที่พบบ่อย
- ตัวอย่างและสูตรอาหาร
เกี่ยวกับการแนะนํา Freebase
Freebase suggest เป็นปลั๊กอินของ jQuery ที่เพิ่มการเติมข้อความอัตโนมัติของหัวข้อ Freebase ลงในช่องค้นหาในเว็บไซต์ของคุณ ผู้ใช้เริ่มพิมพ์ข้อความและวิดเจ็ตจะแนะนํารายการที่ตรงกันที่เกี่ยวข้องจากหัวข้อนับล้านบน Freebase.com หรือชุดย่อยบางประเภท เช่น ผู้คน สถานที่ตั้ง หรือสัตว์ ตัวอย่างหัวข้อจะช่วยผู้ใช้เลือกรายการที่ถูกต้องซึ่งระบุโดยไม่ซ้ํากันได้โดยใช้รหัสฐานฟรี
ฟีเจอร์
- ข้ามเบราว์เซอร์ - อิงตาม jQuery ทดสอบกับ IE7+, FF2+, Safari 3+ และ Chrome (เวอร์ชัน jquery ต่ําสุดคือ 1.4.4)
- ข้ามโดเมน ไม่ต้องใช้พร็อกซีเซิร์ฟเวอร์เนื่องจาก JSONP
- โฮสต์โดย Google ใน gstatic.com
- ฟรี! (ใช้ข้อกําหนดของ Freebase แบบมาตรฐานและข้อกําหนดของ Google Developer API)
การแนะนําฟรีเบสในป่า
เว็บไซต์ที่ใช้การแนะนําพื้นฐานฟรี:
- รีวิวหนังสือ WSJ
- ContentToogle.org - การสาธิตการติดแท็กจากหนังสือพิมพ์ Guardian News
- geolocation.ws - ติดแท็กรูปภาพไปยังเอนทิตี Freebase
เหตุใดจึงใช้ 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_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 พร้อมกับข้อความประมาณนี้
$(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 การค้นหาอย่างโปร่งใส
|
สะกด | สตริง | 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 | สตริง | ค่าคือ /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&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}&errorid=/freebase/no_image_png |
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 เริ่มต้น
แผง | คอนเทนเนอร์ภายนอกของรายการคําแนะนํา
ค่าเริ่มต้น: ' |
list | รายการคําแนะนํา
ค่าเริ่มต้น: ' |
รายการ [item] | รายการคําแนะนํา
ค่าเริ่มต้น: ' |
item_name | องค์ประกอบที่มีชื่อสินค้า
ค่าเริ่มต้น: ' |
เลือกไว้ | รายการที่ไฮไลต์/เลือกอยู่ในปัจจุบัน ค่าเริ่มต้น: 'fbs-selected ' |
สถานะ | องค์ประกอบที่มีข้อความสถานะ ค่าเริ่มต้น: 'fbs-status ' |
ประเภทรายการ [item_type] | องค์ประกอบที่มีประเภทสําคัญของสินค้า ค่าเริ่มต้น: 'fbs-item-type ' |
สะพานลอย | คอนเทนเนอร์ด้านนอกของฟลายเอาท์
ค่าเริ่มต้น: ' |
ตัวอย่าง
$("#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 นาที แต่อาจใช้เวลานานกว่านั้นหากระบบทํางานช้า
ตัวอย่างและสูตรอาหาร
- สูตรอาหารแนะนําฟรีเบส - แชร์เคล็ดลับการใช้ "การแนะนํา" บน 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); });
คําแนะนําที่จํากัดโดยใช้ตัวกรอง
แนะนําภาพยนตร์ที่กํากับโดย 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
สําหรับข้อจํากัดเพิ่มเติมในการค้นหาและการกรอง โปรดดูตําราการค้นหา