- Sobre o Freebase Suggest
- Como adicionar o Freebase Suggest ao seu site
- Opções de configuração
- Modificar o CSS
- Como os eventos funcionam
- Mais informações e perguntas frequentes
- Exemplos e receitas
Sobre o Freebase Suggest
O Freebase Suggest é um plug-in do jQuery que adiciona o preenchimento automático de tópicos do Freebase a caixas de pesquisa em seu site. Os usuários começam a digitar texto, e o widget sugere correspondências relevantes de milhões de temas em Freebase.com ou qualquer subconjunto de tipos como pessoas, locais ou animais. O menu suspenso de tópicos ajuda o usuário a selecionar o item correto que é identificado de forma exclusiva com um ID do Freebase.
Recursos
- Vários navegadores, com base no jQuery, testado no IE7+, FF2+, Safari 3+ e Chrome (a versão mínima do jquery é 1.4.4)
- Vários domínios Sem a necessidade de servidores proxy, graças ao JSONP.
- Hospedado pelo Google em gstatic.com
- Sem custo financeiro! Os Termos básicos padrão e os Termos da API Google Developer se aplicam.
Sugestão do Freebase no mundo real
Sites que usam o Freebase Suggest:
- Avaliações do livro WSJ
- ContentTagger.org: marcação de demonstração do jornal The Guardian
- Geolocation.ws: marque fotos como entidades do Freebase
Por que usar o Freebase Suggest?
- Com o preenchimento automático, seus usuários digitam menos para inserir mais dados.
- A entrada de dados é divertida e precisa.
- Reduza a carga cognitiva para seus usuários com as imagens e as descrições no menu suspenso do tópico.
- Use identificadores fortes em vez de palavras-chave de texto. O nome "Sting" é ambíguo, mas os IDs de Freebase
/en/sting
e/en/sting_1959
não são. - Evite nomes duplicados para a mesma entidade. Puff Daddy Diddy, Sean Combs se refere a
/en/sean_combs
.
Como adicionar o Freebase Suggest ao seu site
Para adicionar a sugestão do Freebase à sua página da Web, inclua o código a seguir na fonte do seu site. Você também pode obter e usar uma chave de API para estender a funcionalidade do Freebase Suggest.
Código a ser incluído no seu site
Inclua o seguinte no <head>
do seu documento HTML:
<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>
Em seguida, use um campo de entrada no documento <body>
semelhante a este:
<input type="text" id="myinput"/>
Obtenção de uma chave de API
Ter uma chave de API permite que seu aplicativo faça solicitações de sugestão. Sem uma chave de API, o widget funcionará para fins de teste limitados. Para receber uma chave, siga as instruções na nossa página Primeiros passos.
Depois de receber uma chave, transmita-a para o Freebase Suggest com algo como:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Opções de configuração
A tabela a seguir descreve as opções de configuração do Freebase Suggest.
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
avançado | Booleano | verdadeiro | Se for verdadeiro, o Freebase Suggest vai analisar e processar pares de name:value in-line na entrada como restrições de filtro adicionais. Por exemplo, para 'bob type:artist contributed_to:"Love and Theft"' , uma restrição de filtro adicional, '(all type:artist contributed_to:"Love and Theft")' é transmitido para a pesquisa. Além disso, quando o avançado é verdadeiro, o Freebase Suggest reconhece códigos e MIDs do Freebase para que seja possível pesquisar diretamente uma entidade pelo ID ou MID. |
exata | Booleano | false | Se for "true", especificará que a API Search retornará apenas correspondências exatas (daquilo que há na entrada). Esse valor é transmitido de maneira transparente para a API Search. |
Função filter | String | null | Especifique as restrições de filtro de pesquisa padrão que serão transmitidas de maneira transparente para a API Search como um parâmetro de filtro. Por exemplo, para restringir o Freebase Suggest para pesquisar apenas em faculdades e/ou universidades, use "(all type:/education/university) " como um filtro. Consulte API Search ou Restrições textuais para ver uma lista abrangente dos filtros de pesquisa disponíveis. |
chave | String | null | Forneça uma chave de API para a API Search padrão especificada por service_url + service_path . Acesse uma no Console de APIs. |
lang | String | null | O parâmetro lang aceita uma lista separada por vírgulas de códigos de idioma que fazem a pesquisa ser feita em todos os idiomas especificados e os resultados são classificados no primeiro idioma listado e exibido no primeiro idioma da lista que tem um nome para a entidade. Atualmente, 18 idiomas são compatíveis: en (english), es (spanish), fr (french), de (german), it (italian), pt (portuguese), zh (chinese), ja (japanese), ko (korean), ru (russian), sv (swedish), fi (finnish), da (hangish) e dulandês). O idioma inglês é o mais usado e é o idioma padrão. Esse valor é transmitido de maneira transparente para a API Search. |
em lote | String | null | Com o parâmetro scoring , é possível controlar quais componentes de pontuação de relevância são usados para calcular a pontuação final. Esse valor é transmitido de maneira transparente para a API Search.
|
soletrar | String | always |
Os valores válidos são: always , no_results e no_spelling . Se a ortografia for solicitada e a pesquisa retornar uma correção ortográfica, o Freebase Suggest exibirá a correção na lista de sugestões. Esse valor é transmitido de forma transparente para o serviço de pesquisa. |
voar | Booleano, bottom |
verdadeiro | Determina se uma descrição do menu suspenso é exibida ou não ao passar o cursor sobre ela. Se bottom , exibir menu suspenso na parte inferior da lista de sugestões. Quando a lista "Sugerir" aparece acima da caixa de entrada, o menu suspenso aparece na parte de cima da lista. Se verdadeiro, o Suggest fará o melhor para mostrar o menu suspenso do lado esquerdo ou direito da lista.
|
sugira_novo | String | null | Texto a ser exibido abaixo da lista de sugestões. Na seleção, um fb-select-new é acionado. |
css | Objeto | Substitua os nomes de classes CSS padrão usados para os vários elementos do Freebase Suggest. Consulte Como modificar o CSS para saber mais detalhes. | |
Prefixo de CSS | String | null | Você pode especificar um prefixo para ser anexado aos nomes das classes dos elementos de "Suggest". Por exemplo, se css_prefix for "foo- " os nomes dos contêineres serão "foo-fbs-pane " e "foo-fbs-flyoutpane ". |
show_id | Booleano | verdadeiro | Exibe o valor &&39;notable ' retornado pela pesquisa. No entanto, se não estiver disponível e se for verdadeiro, o código do item será exibido. |
service_url | String | O valor é https://www.googleapis.com/freebase/v1 |
Esse é o URL base do serviço Suggest. |
service_path | String | /search |
service_url + service_path = URL do serviço do Suggest. |
flyout_service_url | String | null | O URL de base do serviço flyout. Se for nulo, o padrão será service_url . |
fly__service_path | String | O valor é /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} |
flyout_service_url + flyout_service_path = url para o serviço de voo. '${id} ' e '{key} ' são substituídos pelo ID do item em passar o cursor e pela chave de API, respectivamente. |
URL de serviço de imagem de saída | String | null | É o URL de base da imagem no menu suspenso. Se for nulo, o padrão será service_url . |
caminho_da_imagem_do_voo_de_voo | String | O valor é /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png |
flyout_image_service_url + flyout_image_service_path = URL do serviço de imagem. '${id} ' e '{key} ' serão substituídos pelo ID do item em passar o cursor e pela chave de API, respectivamente. |
flyout_parent | String (seletor jQuery) | null | Por padrão, o contêiner de menu suspenso é anexado ao corpo do documento e posicionado absolutamente. O flyout_parent especifica um pai diferente, e o voo não será posicionado de forma absoluta. |
alinhar | String | null | Se align não for definido, a lista de sugestões vai ser alinhada à "esquerda" ou "direita" da caixa de entrada, dependendo da posição dela no documento. Para substituir esse comportamento e definir o alinhamento explicitamente, defina align como "left " ou "right " |
status | Matriz[4](String) | ["Comece a digitar para receber sugestões...", "Pesquisando...", "Selecione um item da lista:", "Algo deu errado. Tente novamente mais tarde"] | Mensagens de status que aparecem nos quatro estágios diferentes da sugestão; [0] quando a caixa de entrada está vazia e recebe foco. [1] ao recuperar os resultados, [2] ao exibir os resultados, [3] quando houver um erro no serviço do Suggest. É possível substituir essas mensagens de status padrão transmitindo uma matriz diferente de strings correspondentes aos quatro estágios diferentes. |
primária | String (seletor jQuery) | null | Por padrão, a lista "Sugerir" é anexada ao corpo do documento e posicionada de forma absoluta. Use parent para especificar um pai diferente, e a lista não será absolutamente posicionada. |
animate | Booleano | false | Se verdadeiro, a exibição da lista de sugestões será animada usando o efeito deslizante para baixo do jQuery. |
xhr_delay | Número inteiro (ms) | 200 |
Especifica um atraso antes de retornar os resultados. Isso é útil nos casos em que mql_filters são complexos e a API Suggest pode levar mais tempo ou semelhante para responder do que o atraso codificado, causando uma experiência um pouco prejudicada para o usuário e carga desnecessária. |
Zindex | Inteiro | null | Define o Z-index do maior número de contêineres externos (fbs-pane , fbs-flyoutpane ). Isso é útil ao usar o Freebase Suggest em caixas de diálogo para que os elementos de "Suggest" sejam exibidos no topo. |
Modificar o CSS
As classes CSS padrão usadas pelo Freebase Suggest podem ser substituídas transmitindo um mapa de valores alternativos para os nomes de classes CSS usando a opção de configuração css. A tabela a seguir descreve as classes no CSS padrão.
painel | O contêiner externo da lista de sugestões.
Padrão: ' |
list | Lista de sugestões.
Padrão: ' |
item | Itens da lista "Suggest".
Padrão: ' |
item_name | O elemento que contém o nome do item.
Padrão: ' |
selecionado | Item atual/selecionado. Padrão: 'fbs-selected '. |
status | O elemento que contém as mensagens de status. Padrão: 'fbs-status '. |
item_type | O elemento que contém o tipo notável de um item. Padrão: 'fbs-item-type '. |
panfleto de voo | O contêiner externo para voo.
Padrão: ' |
Exemplo:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Como os eventos funcionam
O Freebase Suggest aciona os seguintes eventos dentro do contexto da entrada com que ele é inicializado.
fb-select
: quando um item é selecionado na lista de sugestões. O evento é acompanhado por um objeto de dados em que data.name
e data.id
representam o nome e o ID do item selecionado.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
: quando a opção suggest_new
está ativada, esse evento é acionado quando o item sugira_new é selecionado. O evento é acompanhado pelo valor de entrada.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
Perguntas frequentes e mais informações
Perguntas, relatórios de bugs e feedback são muito bem-vindos no Grupo do Google dos desenvolvedores do Freebase ou na Lista de problemas (escolha o componente "Pesquisar/Sugerir").
- Acabei de criar um novo tópico, mas ele não está aparecendo no Suggest. O que está acontecendo?
O Freebase Suggest usa a API Search para fornecer resultados, que são atualizados quase em tempo real. Novos tópicos costumam aparecer em cerca de um minuto, mas podem ser mais longos se o sistema estiver sob carga alta.
Exemplos e receitas
- Receitas recomendadas do Freebase: compartilhe suas dicas sobre como usar o Suggest na nossa Wiki.
Uso básico
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Sugerir nova
$("#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); });
Restringir sugestões usando um filtro
Sugira filmes dirigidos por 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); });
Como filtrar na caixa de texto
É possível filtrar os resultados digitando qualquer uma das restrições de filtro diretamente na caixa "Sugerir". Por exemplo, para pesquisar livros de jardinagem, tente:
gardening type:/book/book gardening type:book
Na verdade, é possível usar quaisquer restrições do metaesquema de pesquisa para filtrar os resultados. Por exemplo, para pesquisar todas as pessoas que "contributed_to
" o filme "Salvando o Ryan Ryan", tente:
contributed_to:"Saving Private Ryan" type:/people/person
Conforme indicado nas Opções de configuração, lang
, scoring
, spell
, exact
são transmitidos de forma transparente para a API Search. Também é possível substituí-los in-line. Por exemplo, se o Freebase Suggest for inicializado com lang:"en"
e você também quiser pesquisar nomes franceses, tente o seguinte:
babar lang:fr,en
Para outras restrições de filtragem e pesquisa, consulte o Manual de pesquisa.