Widżet wyszukiwania Freebase

  1. Informacje o Freebase Suggest
  2. Dodawanie sugestii Freebase do witryny
  3. Opcje konfiguracji
  4. Modyfikowanie CSS
  5. Jak działają wydarzenia
  6. Więcej informacji i najczęstsze pytania
  7. 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.

Sugestia Freebase Suggest.png

Funkcje

Wypróbuj teraz

Sugestia Freebase Suggest na wolności

Witryny znane z propozycji Freebase Suggest:

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&quot” 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_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>

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.
  • entity: używaj zarówno wyniku FREEBASE, jak i trafności Google, przy czym domyślne wyniki Google wynoszą 1,0. (jest to ustawienie domyślne)
  • freebase: używaj tylko wyniku trafności Freebase.
  • schema: użyj, gdy szukasz encji schematu, takich jak typy, właściwości lub domeny. Liczba linków w elementach schematu jest obliczana inaczej.
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ść: /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&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 Wartość: /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png 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: 'fbs-pane'

list Lista sugestii.

Domyślnie: 'fbs-list'

item Pozycje listy Sugestie.

Domyślnie: 'fbs-item'.

item_name Element zawierający nazwę elementu.

Domyślnie: 'fbs-item-name'

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

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

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

Podstawowe użycie

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

Wypróbuj teraz

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

Wypróbuj teraz

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

Wypróbuj teraz

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.