- Tentang Saran Freebase
- Menambahkan Saran Freebase ke situs Anda
- Opsi konfigurasi
- Mengubah CSS
- Cara kerja acara
- Info selengkapnya dan FAQ
- Contoh dan resep
Tentang Saran Freebase
Freebase Suggest adalah plugin jQuery yang menambahkan pelengkapan otomatis topik Freebase ke kotak penelusuran di situs Anda. Pengguna mulai mengetik teks dan widget akan menyarankan kecocokan yang relevan dari jutaan topik di Freebase.com atau subkumpulan jenis lainnya seperti Orang, Lokasi, atau Hewan. Flyout topik membantu pengguna memilih item yang benar yang diidentifikasi secara unik dengan ID Freebase.
Fitur
- Lintas browser - berdasarkan jQuery, diuji pada IE7+, FF2+, Safari 3+, dan Chrome (min versi jquery adalah 1.4.4)
- Lintas-domain. Tidak ada server proxy yang diperlukan berkat JSONP.
- Dihosting oleh Google di gstatic.com
- Gratis! (Persyaratan Freebase standar dan Persyaratan Google Developer API berlaku.)
Saran Freebase di alam liar
Situs yang dikenal menggunakan Saran Freebase:
- Ulasan Buku WSJ
- ContentTagger.org - Demo pemberian tag dari Koran Wali
- geolocation.ws - Memberi tag foto ke entitas Freebase
Mengapa menggunakan Freebase Suggest?
- Dengan pelengkapan otomatis, pengguna Anda dapat mengetik lebih sedikit untuk memasukkan lebih banyak data.
- Entri data menyenangkan dan akurat!
- Kurangi beban kognitif pada pengguna Anda berkat gambar dan deskripsi dalam pembahasan topik.
- Gunakan ID yang kuat, bukan kata kunci teks. Nama "Sting" ambigu, tetapi ID Freebase
/en/sting
dan/en/sting_1959
tidak. - Hindari nama duplikat untuk entitas yang sama. Musik Puff Daddy, P. Diddy, Sean Combs merujuk ke
/en/sean_combs
.
Menambahkan Saran Freebase ke situs web Anda
Untuk menambahkan Saran Freebase ke halaman web Anda, sertakan kode berikut dalam sumber situs Anda. Anda juga dapat memperoleh dan menggunakan kunci API untuk memperluas fungsi Saran Freebase.
Kode untuk disertakan dalam situs Anda
Sertakan hal berikut dalam <head>
dokumen HTML Anda:
<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>
Kemudian, gunakan kolom input di dokumen <body>
yang mirip dengan ini:
<input type="text" id="myinput"/>
Memperoleh kunci API
Dengan mendapatkan kunci API, aplikasi Anda dapat membuat permintaan Suggest. Tanpa kunci API, widget akan berfungsi untuk tujuan pengujian terbatas. Untuk mendapatkan kunci, ikuti petunjuk di halaman Memulai.
Setelah Anda mendapatkan kunci, teruskan ke Freebase Suggest dengan sesuatu seperti ini:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Opsi konfigurasi
Tabel berikut menjelaskan opsi konfigurasi untuk Saran Freebase.
Name | Jenis | Default | Deskripsi |
---|---|---|---|
lanjutan | Boolean | true | Jika benar, Saran Freebase akan mengurai dan menangani pasangan name:value inline dalam input sebagai batasan filter tambahan. Misalnya, untuk 'bob type:artist contributed_to:"Love and Theft"' , batasan filter tambahan, '(all type:artist contributed_to:"Love and Theft")' diteruskan ke penelusuran. Selain itu, jika lanjutan benar, Saran Freebase akan mengenali ID dan MID Freebase sehingga seseorang dapat langsung menelusuri entitas berdasarkan ID atau MID-nya. |
persis | Boolean | false | Jika disetel ke benar, API ini akan menentukan bahwa Search API hanya menampilkan hasil yang sama persis (dari elemen yang ada di input). Nilai ini diteruskan secara transparan ke Search API. |
filter | String | null | Tentukan batasan filter penelusuran default yang akan diteruskan secara transparan ke Search API sebagai parameter filter. Misalnya, untuk membatasi Freebase Suggest agar hanya menelusuri di perguruan tinggi dan/atau universitas, gunakan "(all type:/education/university) " sebagai filter. Lihat Search API atau Textual Constraints untuk mengetahui daftar lengkap filter penelusuran yang tersedia. |
tombol | String | null | Berikan kunci API untuk Search API default yang ditentukan oleh service_url + service_path . Anda bisa mendapatkannya dari Konsol API. |
lang | String | null | Parameter lang menerima daftar kode bahasa yang dipisahkan koma yang menyebabkan penelusuran dilakukan dalam semua bahasa yang ditentukan dan hasilnya diberi peringkat dalam bahasa pertama yang tercantum dan ditampilkan dalam bahasa pertama dalam daftar yang memiliki nama untuk entity. Saat ini, 18 bahasa didukung: en (Inggris), es (Spanyol), fr (Prancis), de (Jerman), it (Italia), pt (portuguese), zh (China), ja (Jepang), ko (korea), ru (rusa), nl (dudukan), fi (finnish), da (denmarkian), nl (dudukan (hududi), nl (dudukang) Sejauh ini, bahasa Inggris memiliki cakupan paling banyak dan merupakan bahasa default. Nilai ini diteruskan secara transparan ke Search API. |
penskoran | String | null | Parameter scoring memungkinkan untuk mengontrol komponen skor relevansi yang digunakan untuk menghitung skor akhir. Nilai ini diteruskan secara transparan ke Search API.
|
ejaan | String | always |
Nilai yang valid adalah always , no_results , no_spelling . Jika ejaan diminta dan penelusuran menampilkan koreksi ejaan, Saran Freebase akan menampilkan koreksi dalam daftar Saran. Nilai ini secara transparan diteruskan ke layanan penelusuran. |
terbang | Boolean, bottom |
true | Menentukan apakah deskripsi flyout akan ditampilkan atau tidak. Jika bottom , tampilkan flyout di bagian bawah daftar Saran. Jika daftar Sarankan ditampilkan di atas kotak masukan, jalan pintas ditampilkan di atas daftar tersebut. Jika benar, Suggest akan melakukan yang terbaik untuk menampilkan batas waktu di sisi kiri atau kanan daftar.
|
saran_baru | String | null | Teks yang akan ditampilkan di bawah daftar saran. Saat dipilih, fb-select-new akan dipicu. |
css | Objek | Timpa nama class CSS default yang digunakan untuk berbagai elemen Saran Freebase. Lihat Memodifikasi CSS untuk detailnya. | |
css_prefix | String | null | Anda dapat menentukan awalan yang akan ditambahkan di awal nama class elemen Suggest. Misalnya jika css_prefix adalah "foo- " nama penampungnya akan menjadi "foo-fbs-pane " dan "foo-fbs-flyoutpane ". |
show_id | Boolean | true | Menampilkan 'notable ' nilai yang ditampilkan oleh penelusuran. Namun, jika tidak tersedia dan benar, item akan menampilkan ID item. |
service_url [url_layanan] | String | Nilai adalah https://www.googleapis.com/freebase/v1 |
Ini adalah URL dasar untuk layanan Sarankan. |
service_path [jalur_layanan] | String | /search |
service_url + service_path = URL ke layanan Suggest. |
flyout_service_url | String | null | URL dasar untuk layanan flyout. Jika null, setelan defaultnya adalah service_url . |
flyout_service_path | String | Nilai adalah /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} |
flyout_service_url + flyout_service_path = URL untuk layanan keluar. '${id} ' dan '{key} ' masing-masing digantikan oleh ID item yang diarahkan dan kunci API. |
flyout_image_service_url | String | null | URL dasar untuk gambar di panduan. Jika null, setelan defaultnya adalah service_url . |
flyout_image_service_path | String | Nilai adalah /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png |
flyout_image_service_url + flyout_image_service_path = URL ke layanan gambar. '${id} ' dan '{key} ' masing-masing akan digantikan oleh ID item yang melayang dan kunci API. |
flyout_parent | String (pemilih jQuery) | null | Secara default, penampung flyout ditambahkan ke isi dokumen dan diposisikan secara mutlak. flyout_parent menentukan induk yang berbeda dan flyout tidak akan benar-benar diposisikan. |
ratakan | String | null | Jika align tidak disetel, daftar Sarankan akan disejajarkan dengan "kiri" atau "kanan" dari kotak masukan bergantung pada posisinya di dokumen. Untuk mengganti perilaku ini dan menyetel penyelarasannya secara eksplisit, tetapkan align ke "left " atau "right ". |
status | Array[4](String) | ["Mulai mengetik untuk mendapatkan saran...", "Menelusuri...", "Pilih item dari daftar:", "Maaf, terjadi masalah. Coba lagi nanti"] | Pesan status yang muncul di 4 tahap yang berbeda pada Suggest; [0] Saat kotak input kosong dan mendapatkan fokus. [1] saat mengambil hasil, [2] saat menampilkan hasil, [3] saat ada kesalahan dari layanan Suggest. Anda dapat mengganti pesan status default ini dengan meneruskan array string yang berbeda sesuai dengan 4 tahapan yang berbeda. |
induk | String (pemilih jQuery) | null | Secara default, daftar Saran ditambahkan ke isi dokumen dan diposisikan secara mutlak. Gunakan parent untuk menentukan induk yang berbeda dan daftar tersebut tidak akan benar-benar diposisikan. |
animate | Boolean | false | Jika benar, tampilan daftar Sarankan akan dianimasikan menggunakan efek slideDown jQuery. |
xhr_delay | Bilangan bulat (md) | 200 |
Menentukan penundaan sebelum menampilkan hasil. Ini berguna jika mql_filters sangat rumit dan Suggest API mungkin memerlukan waktu lebih lama atau mirip untuk dijawab daripada penundaan hardcode, yang menyebabkan penurunan kualitas pengalaman pengguna dan pemuatan yang tidak perlu. |
Indeks | Bilangan Bulat | null | Menetapkan indeks z dari sebagian besar penampung (fbs-pane , fbs-flyoutpane ). Hal ini berguna saat menggunakan Saran Freebase di kotak dialog sehingga elemen Sarankan ditampilkan di bagian atas. |
Mengubah CSS
Class CSS default yang digunakan oleh Freebase Suggest dapat diganti dengan meneruskan peta nilai alternatif untuk nama class CSS menggunakan opsi konfigurasi css. Tabel berikut menjelaskan class di CSS default.
panel | Penampung luar daftar Saran.
Default: ' |
list | Daftar Sarankan.
Default: ' |
item | Item daftar Sarankan.
Default: ' |
item_name | Elemen yang berisi nama item.
Default: ' |
dipilih | Item yang saat ini ditandai/dipilih. Default: 'fbs-selected '. |
status | Elemen yang berisi pesan status. Default: 'fbs-status '. |
item_type [tipe_item] | Elemen yang berisi jenis item yang terkenal. Default: 'fbs-item-type '. |
panel flyout | Penampung luar flyout.
Default: ' |
Contoh:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Cara kerja peristiwa
Saran Freebase memicu peristiwa berikut dalam konteks input yang diinisialisasi dengannya.
fb-select
- Saat item dipilih dari daftar Saran. Peristiwa ini disertai dengan objek data dengan data.name
dan data.id
yang mewakili nama dan ID item yang dipilih.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
- Saat opsi suggest_new
diaktifkan, peristiwa ini dipicu saat item_saran_baru dipilih. Peristiwa disertai dengan nilai input.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
FAQ dan informasi selengkapnya
Pertanyaan, laporan bug, dan masukan diterima dengan sangat baik di Google Grup Developer Freebase atau Daftar Masalah (pilih komponen "Telusuri/Sarankan").
- Saya baru saja membuat topik baru, tetapi topik ini tidak muncul di Sarankan - apa yang terjadi?
Freebase Suggest menggunakan Search API untuk memberikan hasilnya, dan diperbarui hampir secara real-time. Topik baru biasanya muncul dalam sekitar satu menit, tetapi bisa lebih lama jika sistem berada dalam beban kerja yang tinggi.
Contoh dan resep
- Resep Saran Freebase - membagikan tips Anda tentang cara menggunakan Sarankan di Wiki kami.
Penggunaan dasar
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Sarankan baru
$("#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); });
Membatasi saran menggunakan filter
Menyarankan film yang disutradarai oleh 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); });
Memfilter dari kotak teks
Anda dapat memfilter hasil dengan mengetik salah satu batasan filter langsung ke kotak Saran. Misalnya, untuk menelusuri buku tentang berkebun, coba:
gardening type:/book/book gardening type:book
Bahkan, Anda dapat menggunakan batasan Search Metaschema untuk memfilter hasil. Misalnya, untuk menelusuri semua orang yang "contributed_to
" film "Menyimpan Ryan Pribadi", coba:
contributed_to:"Saving Private Ryan" type:/people/person
Seperti yang dinyatakan dalam Opsi konfigurasi, lang
, scoring
, spell
, exact
diteruskan secara transparan ke Search API. Anda juga dapat menimpanya secara inline. Misalnya, jika Freebase Suggest diinisialisasi dengan lang:"en"
dan Anda juga ingin menelusuri nama Prancis, coba:
babar lang:fr,en
Untuk filter tambahan dan batasan penelusuran, lihat Search Cookbook.