- Freebase Suggest hakkında
- Sitenize Freebase Suggest'i ekleme
- Yapılandırma seçenekleri
- CSS'yi değiştirme
- Etkinliklerin işleyiş şekli
- Daha fazla bilgi ve SSS
- Örnekler ve tarifler
Freebase Suggest hakkında
Freebase Suggest, sitenizdeki arama kutularına Freebase konu otomatik tamamlama özelliğini ekleyen bir jQuery eklentisidir. Kullanıcılar metin yazmaya başladığında widget, Freebase.com'daki milyonlarca konuda veya İnsanlar, Konumlar ya da Hayvanlar gibi herhangi bir tür alt kümeden alakalı eşleşmeler önerir. Konu uçuşları, kullanıcının Freebase kimliğiyle benzersiz bir şekilde tanımlanan doğru öğeyi seçmesine yardımcı olur.
Özellikler
- Çapraz tarayıcı - IE7+, FF2+, Safari 3+ ve Chrome'da test edilmiş jQuery'ye dayanır (min. jquery sürümü 1.4.4'tür)
- Web alanları arası. JSONP sayesinde proxy sunucu gerekmez.
- Google tarafından gstatic.com tarafından barındırılır
- Ücretsiz! (Standart Freebase Şartları ve Google Developer API Şartları geçerlidir.)
Vahşi doğada Freebase Suggest
Freebase Suggest'i kullandığı bilinen siteler:
- WSJ Kitap yorumları
- ContentTagger.org - Veli Gazetesi'nin tanıtım etiketi
- c0sm.org - Ünlüleri c0sm'ye ekleyin.
- geolocation.ws: Fotoğrafları Freebase varlıklarına etiketleyin
Freebase Suggest neden kullanılmalıdır?
- Otomatik tamamlamada kullanıcılarınız daha az veri girmek için daha az yazar.
- Veri girişi eğlenceli ve doğru!
- Konu geçişlerindeki görseller ve açıklamalar sayesinde kullanıcılarınızın bilişsel yükünü azaltın.
- Metin anahtar kelimeler yerine güçlü tanımlayıcılar kullanın. "Bazen" adı belirsiz olsa da
/en/sting
ve/en/sting_1959
Freebase Kimlikleri geçerli değil. - Aynı varlık için yinelenen adlar kullanmaktan kaçının. Puff Daddy, P. Diddy, Sean Combs'ın tamamı
/en/sean_combs
anlamına geliyor.
Freebase Suggest'i web sitenize ekleme
Freebase Suggest'i web sayfanıza eklemek için web sitenizin kaynağına aşağıdaki kodu ekleyin. Freebase Suggest'in işlevlerini geliştirmek için bir API anahtarı da edinip kullanabilirsiniz.
Web sitenize eklenecek kod
HTML dokümanınızın <head>
bölümüne aşağıdakileri ekleyin:
<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>
Ardından, <body>
dokümanınızda şuna benzer bir giriş alanı kullanın:
<input type="text" id="myinput"/>
API anahtarı edinme
API anahtarı edinmek, uygulamanızın Öneri önerilerinde bulunmasına izin verir. Widget, API anahtarı olmadan sınırlı test amaçlı olarak çalışır. Anahtar almak için Başlarken sayfamızdaki talimatları uygulayın.
Bir anahtarı aldıktan sonra, aşağıdaki gibi bir anahtarla Freebase Suggest'e iletin:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Yapılandırma seçenekleri
Aşağıdaki tabloda Freebase Suggest'in yapılandırma seçenekleri açıklanmaktadır.
Ad | Tür | Varsayılan | Açıklama |
---|---|---|---|
gelişmiş | Boole | true | Doğruysa, Freebase Suggest girişteki satır içi name:value çiftlerini ek filtre kısıtlamaları olarak ayrıştırır ve işler. Örneğin, 'bob type:artist contributed_to:"Love and Theft"' için ek bir filtre kısıtlaması olan '(all type:artist contributed_to:"Love and Theft")' parametresi aramaya geçirilir. Ayrıca, true (doğru) olduğunda Freebase Suggest, Freebase kimliklerini ve MID'lerini tanır. Böylece bir varlık, kimliğine veya MID'sine göre doğrudan arama yapabilir. |
tam | Boole | yanlış | Doğruysa, Search API'nin yalnızca tam eşlemeleri (girişteki öğelerde) döndürdüğünü belirtir. Bu değer, şeffaf bir şekilde Search API'ye iletilir. |
filter | Dize | boş | Filtre parametreleri olarak Search API'ye şeffaf bir şekilde aktarılacak varsayılan arama filtresi kısıtlamalarını belirtin. Örneğin, Freebase Suggest'i yalnızca kolejler ve/veya üniversitelerde arama yapacak şekilde sınırlandırmak için filtre olarak"(all type:/education/university) "kullanın. Kullanılabilir arama filtrelerinin kapsamlı listesi için Search API veya Metin Kısıtlamaları'na bakın. |
tuş | Dize | boş | service_url + service_path tarafından belirtilen varsayılan Search API için bir API anahtarı sağlayın. API Konsolu'ndan bir API edinebilirsiniz. |
lang | Dize | boş | lang parametresi, aramanın belirtilen tüm dillerde yapılan arama sonuçlarında gösterilmesine ve sonuçların öğe adına sahip listenin ilk dilinde sıralanmasına ve ilk dilde gösterilmesine neden olan dil kodlarının virgülle ayrılmış listesini kabul eder. Şu anda 18 dil desteklenmektedir: en (İngilizce), es (İspanyolca), fr (fransız), de (Almanca), it (italyan), pt (Portekizce), zh (Çince), jav (İsveç), ko (kore), ru (Rusça), sv (İsveç), fi (finca), da (danshyan), nvanence, nvanca İngilizce şu ana kadar en geniş kapsama sahip ve varsayılan dildir. Bu değer, şeffaf bir şekilde Search API'ye iletilir. |
puanlama | Dize | boş | scoring parametresi, nihai puanı hesaplamak için hangi alaka düzeyi puanı bileşenlerinin kullanıldığını kontrol etmenizi sağlar. Bu değer, şeffaf bir şekilde Search API'ye iletilir.
|
yazım | Dize | always |
Geçerli değerler always , no_results , no_spelling şeklindedir. Yazım istenirse ve arama bir yazım düzeltmesi döndürürse Freebase Suggest, düzeltmeyi Öneri listesinde görüntüler. Bu değer, arama hizmetine şeffaf bir şekilde iletilir. |
uçuş | Boole, bottom |
true | Fareyle bir öğenin üzerine gelindiğinde açıklamanın gösterilip gösterilmeyeceğini belirler. bottom yazıyorsa Öneri listesinin alt kısmında çıkışı gösterin. Giriş kutusunun üzerinde Öneri listesi görüntülenirse açılır liste listenin üzerinde görüntülenir. Doğru değerine ayarlanırsa, Suggest listeyi sol veya sağ tarafta göstermek için elinden geleni yapar.
|
öneri_yeni | Dize | boş | Öneri listesinin altında gösterilecek metin. Seçim yapıldığında fb-select-new tetiklenir. |
css | İtiraz et | Çeşitli Freebase Suggest öğeleri için kullanılan varsayılan CSS sınıf adlarının üzerine yazın. Ayrıntılar için CSS'yi değiştirme bölümüne bakın. | |
css_ön eki | Dize | boş | Suggest öğelerinin sınıf adlarına önceden eklenecek bir önek belirtebilirsiniz. Örneğin css_prefix "foo- " ise kapsayıcı adları "foo-fbs-pane " &&t;foo-fbs-flyoutpane " |
show_id | Boole | true | Aramanın döndürdüğü 'notable ' değerini gösterir. Ancak öğe mevcut değilse ve öğe doğruysa öğenin kimliğini gösterir. |
hizmet_url'si | Dize | Değer: https://www.googleapis.com/freebase/v1 |
Bu, Google Suggest hizmetinin temel URL'sidir. |
hizmet_yolu | Dize | /search |
service_url + service_path = Öneri hizmetinin URL'si. |
uçuş_hizmeti_url'si | Dize | boş | Uçurtma hizmetinin temel URL'si. Boşsa varsayılan olarak service_url değerine ayarlanır. |
uçuş_hizmeti_yolu | Dize | Değer: /topic${id}?filter=suggest&limit=3&key=${key} |
flyout_service_url + flyout_service_path = uçuş hizmeti URL'si. '${id} ' ve '{key} ' sırasıyla fareyle üzerine gelinen öğe kimliği ve API anahtarı ile değiştirilir. |
flyout_image_service_url | Dize | boş | Uçurumdaki resmin temel URL'si. Boşsa varsayılan olarak service_url değerine ayarlanır. |
uçuş_resmi_hizmeti_yolu | Dize | /image${id}?maxwidth=75&key=${key} | flyout_image_service_url + flyout_image_service_path = resim hizmeti URL'si. '${id} ' ve '{key} ' sıraları sırasıyla fareyle üzerine gelinen öğe kimliği ve API anahtarı ile değiştirilir. |
uçuş_ana_öğesi | Dize (jQuery seçici) | boş | Varsayılan olarak, uçuş kabı doküman gövdesine eklenir ve mutlak bir şekilde yerleştirilir. flyout_parent farklı bir üst öğeyi belirtir ve ses çıkışı kesinlikle konumlandırılır. |
hizalama | Dize | boş | align ayarlanmazsa Öneri listesi, dokümanın giriş konumuna göre giriş kutusunun "sol" veya "sağ" kısmıyla hizalanır. Bu davranışı geçersiz kılmak ve hizalamasını açık bir şekilde ayarlamak için align "left " veya "right " olarak ayarlayın. |
durum | Dizi[4](Dize) | ["Öneriler almak için yazmaya başlayın..." "Arama"... &"Listeden bir öğe seç:", "&;"Maalesef bir hata oluştu. Lütfen daha sonra tekrar deneyin."] | Suggest'in 4 farklı aşamasında görünen durum mesajları; [0] Giriş kutusu boş olduğunda ve odaklanıldığında. [1] sonuçlar alınırken, [2] sonuçlar görüntülenirken, [3] Suggest hizmetinde bir hata olduğunda. 4 farklı aşamaya karşılık gelen farklı bir dize dizisini ileterek bu varsayılan durum mesajlarını geçersiz kılabilirsiniz. |
üst | Dize (jQuery seçici) | boş | Varsayılan olarak Öneri listesi doküman gövdesine eklenir ve kesinlikle konumlandırılır. Farklı bir üst öğe belirtmek için parent öğesini kullanın ve liste kesinlikle konumlandırılır. |
animate | Boole | yanlış | Doğru değerine ayarlanırsa, Suggest listesinin gösterilmesi jQuery slide Down efekti kullanılarak canlandırılır. |
xhr_gecikme | Tam sayı (ms) | 200 |
Sonuç döndürülmeden önceki gecikmeyi belirtir. Bu, mql_filters karmaşık bir yapıya sahipse ve Suggest API'nin yanıtlanması sabit kodlu gecikmeden daha uzun veya daha uzun sürebiliyorsa bu durum yararlıdır. Bu durum, biraz kullanıcı deneyiminin düşmesine ve gereksiz yüke neden olabilir. |
Z-endeksi | Tamsayı | boş | En dıştaki kapsayıcıların (fbs-pane , fbs-flyoutpane ) Z-endeksini ayarlar. Bu, iletişim kutularında Freebase Suggest'i kullanırken işe yarar. Öneri öğelerinin en üstte görüntülenmesini sağlar. |
CSS'yi değiştirme
Freebase Suggest tarafından kullanılan varsayılan CSS sınıfları, css yapılandırma seçeneği kullanılarak CSS sınıf adlarıyla ilgili alternatif değerlerin haritasının iletilmesini sağlayarak geçersiz kılınabilir. Aşağıdaki tabloda, varsayılan CSS'deki sınıflar açıklanmaktadır.
pane | Öneri listesinin dış kapsayıcısı.
Varsayılan: ' |
list | Öneri listesi.
Varsayılan: ' |
item [öğe] | Öneri listesi öğeleri.
Varsayılan: ' |
item_name | Öğenin adını içeren öğe.
Varsayılan: ' |
seçildi | Vurgulanan/seçilen öğe. Varsayılan: 'fbs-selected '. |
durum | Durum mesajlarını içeren öğe. Varsayılan: 'fbs-status '. |
item_type [öğe_türü] | Bir öğenin dikkate değer türünü içeren öğe. Varsayılan: 'fbs-item-type '. |
uçan tava | Uçak dış kapları.
Varsayılan: ' |
Örneğin:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Etkinliklerin işleyiş şekli
Freebase Suggest, ilk başlatıldığı giriş bağlamında aşağıdaki etkinlikleri tetikler.
fb-select
- Öneri listesinden bir öğe seçildiğinde. Etkinlik, data.name
ve data.id
öğesinin seçili öğenin adını ve kimliğini temsil ettiği bir veri nesnesiyle birlikte gösterilir.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
- suggest_new
seçeneği etkinleştirildiğinde_suggest_new öğesi seçildiğinde bu etkinlik tetiklenir. Etkinlik, giriş değeriyle birlikte gösterilir.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
SSS ve daha fazla bilgi
Freebase Developers Google Group'a veya Sorunlar Listesi'ne hoş geldiniz ("Arama/Öneri" bileşenini seçin).
- Yeni bir konu oluşturdum, ancak konu Suggest'te görünmüyor. Ne oluyor?
Freebase Suggest, sonuçlarını sunmak için Search API'yi kullanır ve bu API neredeyse gerçek zamanlı olarak güncellenir. Yeni konular genellikle yaklaşık bir dakika içinde görünür, ancak sistem yoğun yük altındaysa bu süre uzayabilir.
Örnekler ve tarifler
- Freebase Suggest Yemek Tarifleri, Wiki'mizde Suggest'i kullanmayla ilgili ipuçlarını paylaşın.
Temel kullanım
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Yeni öneri
$("#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); });
Filtre kullanarak önerileri kısıtlama
Mike Spielberg'ün yönettiği filmler önerin.
$("#example5") .suggest({ "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Metin kutusundan filtreleme
Filtre kısıtlamalarından herhangi birini doğrudan Öneri kutusuna yazarak sonuçları filtreleyebilirsiniz. Örneğin, bahçıvanlıkla ilgili kitapları aramak için şunları deneyin:
gardening type:/book/book gardening type:book
Aslında sonuçlarınızı filtrelemek için herhangi bir Search Metaschema kısıtlamasını kullanabilirsiniz. Örneğin, contributed_to
" filmini &quo;Özel Tasarruf Kaydettiren" karakterini arayan tüm kişileri aramak için şunu deneyin:
contributed_to:"Saving Private Ryan" type:/people/person
Yapılandırma seçeneklerinde belirtildiği gibi lang
, scoring
, spell
, exact
, Search API'ye şeffaf bir şekilde iletilir. Ayrıca satır içine de yazabilirsiniz. Örneğin, Freebase Suggest lang:"en"
ile başlatıldıysa ve Fransızca adları da aramak istiyorsanız şunu deneyin:
babar lang:fr,en
Ek filtreleme ve arama kısıtlamaları için lütfen Rehber'de Arama bölümünü inceleyin.