- Acerca de las sugerencias de Freebase
- Cómo agregar Freebase Suggest a tu sitio
- Opciones de configuración
- Cómo modificar el CSS
- Cómo funcionan los eventos
- Más información y preguntas frecuentes
- Ejemplos y recetas
Acerca de las sugerencias de Freebase
Freebase Suggest es un complemento de jQuery que agrega el autocompletado de temas de Freebase a los cuadros de búsqueda de tu sitio. Los usuarios comienzan a escribir texto y el widget sugiere coincidencias relevantes entre millones de temas de Freebase.com o de cualquier subconjunto de tipos, como Personas, Ubicaciones o Animales. Los folletos de temas ayudan al usuario a seleccionar el elemento correcto que se identifica de forma exclusiva con un ID de Freebase.
Funciones
- Navegador cruzado: basado en jQuery, probado en IE7+, FF2+, Safari 3+ y Chrome (la versión mínima de jquery es 1.4.4)
- Varios dominios. No se requieren servidores proxy gracias a JSONP.
- Alojado en Google en gstatic.com
- Gratis (Se aplican las Condiciones estándar de Freebase y las Condiciones de la API de Google Developer).
Sugerencia gratuita de Freebase
Sitios que se sabe que utilizan Freebase Suggest:
- Reseñas de libros de WSJ
- ContentTagger.org: demostración de etiquetado del periódico Guardian
- c0sm.org: Agrega celebridades a c0sm.
- geolocation.ws: Etiqueta fotos en entidades de Freebase
¿Por qué usar sugerencias de Freebase?
- Con la función de autocompletar, los usuarios escriben menos para ingresar más datos.
- La entrada de datos es divertida y precisa.
- Reduce la carga cognitiva en los usuarios gracias a las imágenes y descripciones de los folletos sobre temas.
- Usa identificadores seguros en lugar de palabras clave de texto. El nombre &St> es ambiguo, pero los ID de Freebase
/en/sting
y/en/sting_1959
no lo son. - Evita usar nombres duplicados para la misma entidad. Puff Daddy, P.: Los peines de Sean se refieren a
/en/sean_combs
.
Cómo agregar Freebase Suggest a tu sitio web
Para agregar Freebase Suggest a tu página web, incluye el siguiente código en la fuente de tu sitio web. También puedes obtener y usar una clave de API para extender la funcionalidad de Freebase Suggest.
Código para incluir en su sitio web
Incluye lo siguiente en el <head>
de tu documento HTML:
<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>
Luego, usa un campo de entrada en tu documento <body>
similar al siguiente:
<input type="text" id="myinput"/>
Obtén una clave de API
Obtener una clave de API permite que tu aplicación realice solicitudes de sugerencias. Sin una clave de API, el widget funcionará para fines de pruebas limitados. Para obtener una clave, sigue las instrucciones de nuestra página Comenzar.
Cuando obtengas una clave, pásala a Freebase Suggest con algo como lo siguiente:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Opciones de configuración
En la siguiente tabla, se describen las opciones de configuración para Freebase Suggest.
Nombre | Tipo | Predeterminado | Descripción |
---|---|---|---|
avanzado | Booleano | true | Si es verdadero, Freebase Suggest analizará y manejará los pares name:value intercalados en la entrada como restricciones de filtro adicionales. Por ejemplo, para 'bob type:artist contributed_to:"Love and Theft"' , una restricción de filtro adicional, se pasa '(all type:artist contributed_to:"Love and Theft")' a la búsqueda. Además, cuando el valor avanzado es verdadero, la sugerencia de Freebase reconoce los ID y los MID de Freebase para que uno pueda buscar directamente una entidad por su ID o MID. |
exacta | Booleano | falso | Si es verdadero, especifica que la API de búsqueda muestra solo coincidencias exactas (de lo que está en la entrada). Este valor se transfiere de manera transparente a la API de búsqueda. |
filtro | String | null | Especifica restricciones de filtro de búsqueda predeterminadas que se pasarán de manera transparente a la API de búsqueda como parámetros de filtro. Por ejemplo, para restringir la sugerencia de Freebase, busca solo en universidades o universidades, y utiliza "(all type:/education/university) " como filtro. Consulta la API de búsqueda o las restricciones textuales para obtener una lista completa de los filtros de búsqueda disponibles. |
clave | String | null | Proporciona una clave de API para la API de búsqueda predeterminada que especifica service_url + service_path . Puedes obtener una en la Consola de API. |
lang | String | null | El parámetro lang acepta una lista de códigos de idioma separados por comas que hacen que la búsqueda se realice en todos los idiomas especificados, y los resultados se clasifican en el primer idioma que aparece y se muestran en el primer idioma de la lista que tenga un nombre para la entidad. Actualmente, se admiten 18 idiomas: inglés (español), francés (francés), francés (japonés), ko (coreano), franco (danés), nl (húngaro), nl (húngaro), nl (húngaro), nl (húngaro), nl (sueco) y nv. El inglés tiene la mayor cobertura y es el idioma predeterminado. Este valor se transfiere de manera transparente a la API de búsqueda. |
puntuación | String | null | El parámetro scoring permite controlar qué componentes de la puntuación de relevancia se usan para calcular la puntuación final. Este valor se transfiere de manera transparente a la API de búsqueda.
|
hechizo | String | always |
Los valores posibles son always , no_results y no_spelling . Si se solicita una ortografía y la búsqueda muestra una corrección ortográfica, la sugerencia de Freebase mostrará la corrección en la lista de sugerencias. Este valor se transfiere con transparencia al servicio de búsqueda. |
volar | Booleano, bottom |
true | Determina si se muestra o no una descripción de la publicación al desplazarse sobre ella. Si es bottom , muestra el menú desplegable en la parte inferior de la lista de sugerencias. Si la lista de sugerencias aparece sobre el cuadro de entrada, el menú desplegable aparece sobre la lista. Si es verdadero, Suggest hará todo lo posible para mostrar el volante a la izquierda o a la derecha de la lista.
|
sugerir_nuevo | String | null | Texto que se mostrará debajo de la lista de sugerencias Cuando se selecciona, se activa un fb-select-new . |
css | Objeto | Sobrescribir los nombres de clase de CSS predeterminados que se utilizan para los diversos elementos de Freebase Suggest Consulta Modificar el CSS para obtener más información. | |
prefijo_css | String | null | Puedes especificar un prefijo que se anteponga antes a los nombres de clase de los elementos de Suggest. Por ejemplo, si css_prefix es “foo- ”, los nombres de los contenedores serán “foo-fbs-pane ” y “foo-fbs-flyoutpane ”. |
show_id | Booleano | true | Muestra el valor 'notable ' devuelto por la búsqueda. Sin embargo, si no está disponible y esto es cierto, muestra el ID del artículo. |
service_url | String | El valor es https://www.googleapis.com/freebase/v1 |
Esta es la URL base para el servicio Suggest. |
ruta_servicio | String | /search |
service_url + service_path = URL del servicio de sugerencias. |
URL_de_servicio_vuelo | String | null | La URL base del servicio de vuelo Si es nulo, el valor predeterminado es service_url . |
ruta_servicio_vuelo | String | El valor es /topic${id}?filter=suggest&limit=3&key=${key} |
flyout_service_url + flyout_service_path = url para servicio de vuelo. '${id} '{key} ' se reemplazan por el ID del elemento desplazado y la clave de API, respectivamente. |
URL_servicio_imagen_vuelo | String | null | La URL base de la imagen en el sobrevuelo. Si es nulo, el valor predeterminado es service_url . |
ruta_servicio_imagen_vuelo | String | /image${id}?maxwidth=75&key=${key} | flyout_image_service_url + flyout_image_service_path = URL del servicio de imágenes. '${id} '{key} ' se reemplazará por el ID del elemento desplazado y la clave de API, respectivamente. |
padre_vuelo | String (selector de jQuery) | null | De forma predeterminada, el contenedor de publicación se adjunta al cuerpo del documento y se posiciona de forma absoluta. El elemento flyout_parent especifica un elemento superior diferente, y el volante no se posicionará en absoluto. |
alinear | String | null | Si no se establece align , la lista de sugerencias se alinea a la "izquierda" o la "derecha" del cuadro de entrada según su posición en el documento. Para anular este comportamiento y establecer su alineación de forma explícita, establece align en "left " o right ". |
estado | Arreglo[4](String) | ["Comienza a escribir para obtener sugerencias..." Buscando... "Selecciona un elemento de la lista:" "se produjo un error. Vuelve a intentarlo más tarde"] | Mensajes de estado que aparecen en las 4 etapas diferentes de Suggest; [0] Cuando el cuadro de entrada está vacío y se enfoca. [1] cuando se recuperan los resultados; [2] cuando se muestran los resultados; [3] cuando hay un error del servicio de sugerencias. Puede anular estos mensajes de estado predeterminados pasando un arreglo de strings diferente que corresponda a las 4 etapas diferentes. |
elemento superior | String (selector de jQuery) | null | De forma predeterminada, la lista de sugerencias se adjunta al cuerpo del documento y se posiciona de manera absoluta. Usa parent para especificar un elemento superior diferente, y la lista no se posicionará en absoluto. |
animar | Booleano | falso | Si esta preferencia se establece como "true", se mostrará la lista de sugerencias con el efecto deslizable de jQuery. |
demora_xr | Número entero (ms) | 200 |
Especifica una demora antes de mostrar resultados. Esto es útil en el caso de que mql_filters sea complejo y la API de Suggest pueda tomar más o menos tiempo en responder que el retraso codificado, lo que genera una experiencia del usuario degradada y una carga innecesaria. |
Índice Z | Integer | null | Establece el índice z de la mayoría de los contenedores (fbs-pane , fbs-flyoutpane ). Esto es útil cuando se usa la sugerencia de Freebase en los cuadros de diálogo para que los elementos de Suggest se muestren en la parte superior. |
Cómo modificar el CSS
Las clases de CSS predeterminadas que usa Freebase Suggest pueden anularse pasando un mapa de valores alternativos para los nombres de las clases de CSS mediante la opción de configuración css. En la siguiente tabla, se describen las clases en el CSS predeterminado.
panel | El contenedor externo de la lista de sugerencias.
Predeterminado: ' |
list | La lista de sugerencias.
Predeterminado: ' |
artículo | Los elementos de la lista de sugerencias.
Predeterminado: ' |
item_name | El elemento que contiene el nombre del elemento.
Predeterminado: ' |
seleccionado | El elemento seleccionado actualmente destacado. Predeterminado: 'fbs-selected '. |
estado | El elemento que contiene los mensajes de estado. Predeterminado: 'fbs-status '. |
item_type [tipo_artículo] | Elemento que contiene el tipo destacado de un elemento. Predeterminado: 'fbs-item-type '. |
panel volador | El contenedor externo externo.
Predeterminado: ' |
Por ejemplo:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Cómo funcionan los eventos
La sugerencia de Freebase activa los siguientes eventos dentro del contexto de la entrada con la que se inicializa.
fb-select
: Cuando se selecciona un elemento de la lista de sugerencias. El evento está acompañado de un objeto de datos en el que data.name
y data.id
representan el nombre y el ID del elemento seleccionado.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
: Cuando la opción suggest_new
está habilitada, este evento se activa cuando se selecciona el elemento "suggest_new". El evento está acompañado del valor de entrada.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
Preguntas frecuentes y más información
Si tienes preguntas, informes de errores y comentarios, te damos la bienvenida al Grupo de Google para programadores de Freebase o a la lista de problemas (elige el componente &Buscar).
- Acabo de crear un tema nuevo, pero no aparece en Google Suggest. ¿Qué sucede?
Freebase Suggest usa la API de búsqueda para proporcionar sus resultados, que se actualiza casi en tiempo real. Los temas nuevos suelen aparecer en aproximadamente un minuto, pero puede ser más si el sistema tiene una carga alta.
Ejemplos y recetas
- Recetas sugeridas para Freebase: Comparte sugerencias en nuestra Wiki.
Uso básico
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Sugerir nuevo
$("#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); });
Limita las sugerencias con un filtro
Sugerir películas dirigidas 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); });
Filtrado del cuadro de texto
Es posible filtrar los resultados escribiendo cualquiera de las restricciones de filtro directamente en el cuadro de sugerencias. Por ejemplo, para buscar libros sobre jardinería, intenta lo siguiente:
gardening type:/book/book gardening type:book
De hecho, puede usar cualquier restricción del Metaesquema de búsqueda para filtrar sus resultados. Por ejemplo, para buscar a todas las personas que &contributed_to
"la película "Rescatando al soldado Ryan", intenta lo siguiente:
contributed_to:"Saving Private Ryan" type:/people/person
Como se indica en las Opciones de configuración, lang
, scoring
, spell
, exact
se pasan con transparencia a la API de Búsqueda. También puedes reemplazarlos intercalados. Por ejemplo, si la sugerencia de Freebase se inicializa con lang:"en"
y también quieres buscar nombres en francés, prueba lo siguiente:
babar lang:fr,en
Para obtener más información sobre las restricciones de búsqueda y filtrado, consulta el Libro de recetas de la Búsqueda.