Freebase Search Widget'ı

  1. Freebase Suggest hakkında
  2. Sitenize Freebase Suggest'i ekleme
  3. Yapılandırma seçenekleri
  4. CSS'yi değiştirme
  5. Etkinliklerin işleyiş şekli
  6. Daha fazla bilgi ve SSS
  7. Ö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.

Freebase Suggest.png

Ö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.)

Deneyin

Vahşi doğada Freebase Suggest

Freebase Suggest'i kullandığı bilinen siteler:

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_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>

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.
  • entity: Hem ÜCRETSİZBASE hem de Google alaka düzeyi puanlarını kullanarak, eksik Google puanlarını varsayılan olarak 1,0 olarak ayarlayın. Bu varsayılan seçenektir.
  • freebase: Yalnızca Freebase alaka düzeyini kullanın.
  • schema: Tür, özellik veya alan gibi şema varlıklarını ararken kullanın. Şema varlıklarının bağlantı sayıları farklı şekilde hesaplanır.
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-&quot 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: /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&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 Değer: /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png 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: 'fbs-pane'

list Öneri listesi.

Varsayılan: 'fbs-list'

item [öğe] Öneri listesi öğeleri.

Varsayılan: 'fbs-item'.

item_name Öğenin adını içeren öğe.

Varsayılan: 'fbs-item-name'

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: 'fbs-flyoutpane'

Ö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

Temel kullanım

$("#example1")
 .suggest()
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

Deneyin

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);
 });

Deneyin

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);
});

Deneyin

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&quot 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.