Widget de sugerencia de Freebase

  1. Acerca de las sugerencias de Freebase
  2. Cómo agregar Freebase Suggest a tu sitio
  3. Opciones de configuración
  4. Cómo modificar el CSS
  5. Cómo funcionan los eventos
  6. Más información y preguntas frecuentes
  7. 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.

Freebase Suggest.png

Funciones

¡Pruébalo!

Sugerencia gratuita de Freebase

Sitios que se sabe que utilizan Freebase Suggest:

¿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&gt 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.
  • entity: Usa las puntuaciones de relevancia de FREEBASE y de Google de forma predeterminada, las puntuaciones faltantes de Google en 1.0. Esta es la opción predeterminada.
  • freebase: Usa solo la puntuación de relevancia de Freebase.
  • schema: Se usa cuando se buscan entidades de esquema, como tipos, propiedades o dominios. El recuento de vínculos de las entidades de esquema se calcula de manera diferente.
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: 'fbs-pane'

list La lista de sugerencias.

Predeterminado: 'fbs-list'

artículo Los elementos de la lista de sugerencias.

Predeterminado: 'fbs-item'.

item_name El elemento que contiene el nombre del elemento.

Predeterminado: 'fbs-item-name'

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

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

Uso básico

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

¡Pruébalo!

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

¡Pruébalo!

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

¡Pruébalo!

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.