- Informacje o Freebase Suggest
- Dodawanie sugestii Freebase do witryny
- Opcje konfiguracji
- Modyfikowanie CSS
- Jak działają wydarzenia
- Więcej informacji i najczęstsze pytania
- Przykłady i przepisy
Informacje o Freebase Suggest
Freebase Suggest to wtyczka jQuery, która dodaje autouzupełnianie tematów do Freebase w polach wyszukiwania na stronie. Użytkownicy zaczynają pisać tekst, a widżet sugeruje sugerowane dopasowania z milionów tematów na stronie Freebase.com lub dowolnych podzbiorów typów, np. Osoby, Lokalizacje lub Zwierzęta. Menu z tematem pomaga użytkownikowi wybrać odpowiedni element, który ma unikalny identyfikator.
Funkcje
- Różne przeglądarki – oparte na jQuery, przetestowane w IE7+, FF2+, Safari 3+ i Chrome (minimalna wersja jquery to 1.4.4).
- Wiele domen Dzięki JSONP nie są wymagane żadne serwery proxy.
- Hostowany przez Google na gstatic.com
- Bezpłatne! Obowiązują standardowe Warunki korzystania z usługi Freebase i Warunki korzystania z interfejsu Google Developer API.
Sugestia Freebase Suggest na wolności
Witryny znane z propozycji Freebase Suggest:
- WSJ – recenzje książek
- ContentTagger.org – prezentacja tagu z gazety „Guardian”
- c0sm.org – dodaj gwiazdy do sekcji c0sm.
- geolocation.ws – dodawanie tagów do elementów Freebase
Dlaczego warto korzystać z Freebase Suggest?
- Dzięki autouzupełnianiu użytkownicy mogą wpisywać mniej danych.
- Wprowadzanie danych jest zabawne i dokładne.
- Zmniejsz obciążenie poznawcze użytkowników dzięki obrazom i opisom w tematach tematycznych.
- Używaj silnych identyfikatorów zamiast słów kluczowych z tekstem. Nazwa „Sting"” jest niejednoznaczna, ale identyfikatory Freebase
/en/sting
i/en/sting_1959
nie są takie same. - Unikaj powtarzania nazw tego samego elementu. Puff tata, Grzbiety Seady i grzebienie morskie to
/en/sean_combs
.
Dodanie sugestii Freebase do witryny
Aby dodać sugestię Freebase do swojej strony internetowej, umieść w kodzie swojej witryny poniższy kod. Możesz też uzyskać klucz interfejsu API i użyć go do rozszerzenia funkcjonalności Freebase Suggest.
Kod do uwzględnienia w witrynie
W dokumencie <head>
dokumentu HTML umieść te informacje:
<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>
Następnie użyj pola wejściowego w dokumencie <body>
:
<input type="text" id="myinput"/>
Uzyskiwanie klucza interfejsu API
Uzyskanie klucza interfejsu API umożliwia aplikacji wysyłanie żądań Suggest. Bez klucza interfejsu widżet będzie działać z pewnymi ograniczeniami. Aby uzyskać klucz, postępuj zgodnie z instrukcjami znajdującymi się na stronie Pierwsze kroki.
Po otrzymaniu klucza przekaż go do Freebase Suggest, na przykład:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Opcje konfiguracji
W poniższej tabeli opisano opcje konfiguracji usługi Freebase Suggest.
Nazwa | Typ | Domyślna | Opis |
---|---|---|---|
zaawansowane | Wartość logiczna | prawda | Jeśli zasada ma wartość Prawda, sugestia Freebase analizuje i uwzględnia wbudowane pary name:value w danych wejściowych jako dodatkowe ograniczenia filtra. Na przykład w przypadku filtra 'bob type:artist contributed_to:"Love and Theft"' do wyszukiwania jest przesyłane dodatkowe ograniczenie filtra '(all type:artist contributed_to:"Love and Theft")' . Oprócz tego jeśli dyrektywa Freebase Suggest będzie rozpoznawana jako zaawansowana, rozpoznają identyfikatory Freebase i MID, dzięki czemu będzie można bezpośrednio wyszukiwać elementy za pomocą ich identyfikatorów lub MID. |
ścisłe | Wartość logiczna | fałsz | Jeśli wartość ta jest ustawiona na wartość prawda, interfejs Search API zwraca tylko dokładne dopasowania (w wartości wejściowej). Ta wartość jest automatycznie przekazywana do interfejsu Search API. |
filter | Ciąg znaków | brak | Określ domyślne ograniczenia filtra wyszukiwania, które będą jasno przekazywane do interfejsu API wyszukiwarki jako parametry filtra. Aby na przykład ograniczyć precyzję Freebase Suggest tylko do szkół wyższych lub uczelni, użyj filtra &"(all type:/education/university) ". Pełną listę dostępnych filtrów wyszukiwania znajdziesz w Search API i Texttext Constraints. |
klucz | Ciąg znaków | brak | Podaj klucz API do domyślnego interfejsu API wyszukiwania określonego przez service_url + service_path . Możesz je pobrać w konsoli interfejsów API. |
lang | Ciąg znaków | brak | lang Obecnie dostępne jest 18 języków: en (angielski), en (hiszpański), fr (fraski), pl (angielski), pl (portugalski), pl (duński), pl (en) Język polski ma największy zasięg i jest domyślnym językiem. Ta wartość jest automatycznie przekazywana do interfejsu Search API. |
ocena | Ciąg znaków | brak | Parametr scoring pozwala kontrolować, jakie komponenty wyniku jakości są używane do obliczania wyniku końcowego. Ta wartość jest automatycznie przekazywana do interfejsu Search API.
|
Przeliteruj | Ciąg znaków | always |
Prawidłowe wartości to always , no_results , no_spelling . Jeśli prośba o poprawkę pisowni zostanie wprowadzona, a wyszukiwanie zwróci poprawkę, funkcja sugerowania pisowni wyświetli ją na liście sugestii. Ta wartość jest automatycznie przekazywana do usługi wyszukiwania. |
wylot | Wartość logiczna, bottom |
prawda | Określa, czy opis ma się wyświetlać po najechaniu kursorem myszy. Jeśli bottom , na dole listy Sugestie znajdź wysuwane menu. Jeśli nad polem wprowadzania pojawi się lista sugestii, u góry tej listy pojawi się menu. Jeśli ta funkcja ma wartość Prawda, usługa Suggest dołoży wszelkich starań, aby wyświetlić menu po lewej lub prawej stronie listy.
|
proponowane_nowe | Ciąg znaków | brak | Tekst do wyświetlenia pod listą sugestii. W momencie wyboru wywoływany jest element fb-select-new . |
css | Obiekt | Zastąp domyślne nazwy klas CSS używane w różnych elementach Freebase Suggest. Szczegółowe informacje znajdziesz w artykule Modyfikowanie CSS. | |
css_prefiks | Ciąg znaków | brak | Możesz określić prefiks, który będzie dołączany do nazw klas elementów Zaproponuj. Jeśli na przykład css_prefix to &"foo- " nazwy kontenerów to "foo-fbs-pane " &"foo-fbs-flyoutpane ". |
show_id | Wartość logiczna | prawda | Wyświetla 'notable ' wartość zwracaną przez wyszukiwanie. Jeśli jednak jest ona niedostępna, wyświetli się identyfikator elementu. |
service_url (usługa) | Ciąg znaków | Wartość: https://www.googleapis.com/freebase/v1 |
To jest podstawowy adres URL usługi Suggest. |
ścieżka_usługi | Ciąg znaków | /search |
service_url + service_path = adres URL usługi sugestii. |
URL_usługi_przelotu | Ciąg znaków | brak | Podstawowy adres URL usługi rozwijania. Jeśli zasada ma wartość NULL, domyślna wartość to service_url . |
ścieżka_usługi_do_przelotu | Ciąg znaków | Wartość: /topic${id}?filter=suggest&limit=3&key=${key} |
flyout_service_url + flyout_service_path = adres URL usługi rozwijania. '${id} ' '{key} ' są zastępowane odpowiednio kursorem po identyfikatorze elementu i kluczem interfejsu API. |
image_service_url (odsunięcie_obrazu) | Ciąg znaków | brak | Podstawowy adres URL obrazu w rozwinięciu. Jeśli zasada ma wartość NULL, domyślna wartość to service_url . |
ścieżka_obrazu_przelotowego | Ciąg znaków | /image${id}?maxwidth=75&key=${key} | flyout_image_service_url + flyout_image_service_path = adres URL usługi obrazu. '${id} ' '{key} ' zostanie zastąpiony odpowiednio nałożonym identyfikatorem produktu i kluczem interfejsu API. |
element_nadrzędny | Ciąg znaków (selektor jQuery) | brak | Domyślnie kontener wysuwany jest dołączony do treści dokumentu i zostaje bezwzględne. flyout_parent określa innego elementu nadrzędnego, w którym element rozwinięty nie jest absolutnie ustawiony. |
wyrównaj | Ciąg znaków | brak | Jeśli zasada align nie jest skonfigurowana, lista sugestii jest dopasowywana do operatora w polu „w lewo” i „w prawo” w zależności od pozycji pozycji w dokumencie. Aby zastąpić to zachowanie i określić jego wyrównanie, ustaw align na &"left " lub "right ". |
stan | Tablica[4](ciąg znaków) | ["Zacznij pisać, aby zobaczyć sugestie...", "Wyszukiwanie...", "Wybierz element z listy:", "Coś poszło nie tak. Spróbuj jeszcze raz później] | Komunikaty o stanie wyświetlane na 4 różnych etapach sugestii, [0] gdy pole do wprowadzania danych jest puste i ma ostrość. [1] – podczas pobierania wyników, [2] – podczas wyświetlania wyników, [3] – w przypadku błędu w usłudze Suggest. Możesz zastąpić te domyślne komunikaty o stanie, przekazując inny tablica ciągu odpowiadającego 4 różnym etapom. |
element nadrzędny | Ciąg znaków (selektor jQuery) | brak | Domyślnie lista sugestii jest dołączona do treści dokumentu i umieszczona na najwyższej pozycji. Użyj właściwości parent , aby wskazać innego elementu nadrzędnego, a lista nie będzie bezpozycyjna. |
animuj | Wartość logiczna | fałsz | Jeśli ma wartość Prawda, wyświetlanie listy sugestii jest animowane za pomocą efektu jQuery slajdów. |
xhr_delay | Liczba całkowita (ms) | 200 |
Określa opóźnienie przed zwróceniem wyników. Jest to przydatne w przypadkach, gdy usługa mql_filters jest złożona, a interfejs Suggest API może potrzebować na nią więcej lub podobnego czasu niż w przypadku opóźnienia zakodowanego na stałe. Może to spowodować nieco pogorszenie jakości obsługi i niepotrzebne obciążenie. |
Kolejność nakładania elementów | Liczba całkowita | brak | Ustawia kolejność nakładania większości zewnętrznych kontenerów (fbs-pane , fbs-flyoutpane ). Jest to przydatne, gdy w oknie dialogowym korzystasz z sugestii sugestii dotyczących baz danych, dzięki czemu wyświetlają się na górze. |
Modyfikowanie CSS
Domyślne klasy CSS używane przez Freebase Suggest można zastąpić, mapując alternatywne wartości nazw klas CSS za pomocą opcji konfiguracji css. W tabeli poniżej opisujemy klasy w domyślnej usłudze porównywania cen.
Pan | Zewnętrzny kontener listy Sugestie.
Domyślnie: ' |
list | Lista sugestii.
Domyślnie: ' |
item | Pozycje listy Sugestie.
Domyślnie: ' |
item_name | Element zawierający nazwę elementu.
Domyślnie: ' |
wybrany | Obecnie zaznaczony/wybrany element. Domyślnie: 'fbs-selected '. |
stan | Element zawierający komunikaty o stanie. Domyślnie: 'fbs-status '. |
item_type [typ_produktu] | Element zawierający istotny typ elementu. Domyślnie: 'fbs-item-type '. |
lylypane | Zewnętrzny kontener.
Domyślnie: ' |
Przykład:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Jak działają wydarzenia
Sugestia Freebase Aktywuje następujące zdarzenia w kontekście kontekstu, w którym zostało zainicjowane.
fb-select
– gdy wybrany jest element z listy sugestii. Zdarzeniem jest obiekt danych, w którym data.name
i data.id
odpowiadają nazwie i identyfikatorowi wybranego elementu.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
– gdy jest włączona opcja suggest_new
, to zdarzenie jest wywoływane po wybraniu elementusuggest_new. Każdemu zdarzeniu towarzyszy wartość wejściowa.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
Najczęstsze pytania i więcej informacji
Pytania, raporty o błędach i opinie są bardzo mile widziane w grupie dyskusyjnej Google Freebase Developers lub na liście problemów (wybierz komponent „Wyszukiwarka/sugestia"”).
- Utworzony został nowy temat, ale nie pojawia się on w sekcji Sugestie. Co się dzieje?
Wyniki podawane przez Freebase Suggest używają interfejsu API wyszukiwania, który jest aktualizowany niemal w czasie rzeczywistym. Nowe tematy pojawiają się zazwyczaj w ciągu minuty, ale może to potrwać dłużej, jeśli system jest bardzo przeciążony.
Przykłady i przepisy
- Przepisy na bezpłatne sugestie – podziel się wskazówkami na temat korzystania z sugestii w naszej wiki.
Podstawowe użycie
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Zaproponuj nową
$("#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); });
Blokowanie sugestii przy użyciu filtra
Zaproponuj filmy wyreżyserowane przez Stevena Spielberga.
$("#example5") .suggest({ "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Filtrowanie z pola tekstowego
Wyniki można filtrować, wpisując dowolne ograniczenia filtra bezpośrednio w polu Sugestie. Na przykład, aby wyszukać książki dotyczące ogrodnictwa:
gardening type:/book/book gardening type:book
Do filtrowania wyników możesz użyć dowolnego ograniczenia Metameta wyszukiwarki. Aby na przykład wyszukać wszystkie osoby, które znalazły film contributed_to
"Zapisuję prywatny Ryana&, spróbuj:
contributed_to:"Saving Private Ryan" type:/people/person
Jak określono w opcjach konfiguracji, lang
, scoring
, spell
, exact
w przejrzysty sposób przekazujemy do interfejsu Search API. Możesz też zastąpić je bezpośrednio w tekście. Jeśli na przykład instrukcja Freebase Suggest została zainicjowana z użyciem języka lang:"en"
, ale chcesz też wyszukać nazwy francuskie, spróbuj:
babar lang:fr,en
Dodatkowe ograniczenia związane z filtrowaniem i wyszukiwaniem znajdziesz w książce kucharskiej dotyczącej wyszukiwania.