Cómo implementar Google Suggest en tu propia aplicación web (por ejemplo, mediante Python)

StackOverflow https://stackoverflow.com/questions/255700

Pregunta

En mi sitio web, los usuarios tienen la posibilidad de almacenar enlaces.

Al escribir la dirección de Internet en el campo designado, me gustaría mostrar un cuadro de sugerencias / autocompletar similar a Google Suggest o al Omnibar de Chrome.

Ejemplo:

El usuario está escribiendo como URL:

http://www.sta

Sugerencias que se mostrarían:

http://www.staples.com
http://www.starbucks.com
http://www.stackoverflow.com

¿Cómo puedo lograr esto sin reinventar la rueda? :)

¿Fue útil?

Solución

Podrías intentarlo con http://google.com/complete/search?output=toolbar&q=keyword

y luego analizar el resultado xml.

Otros consejos

Hice esto una vez antes en un servidor Django. Hay dos partes: del lado del cliente y del lado del servidor.

En el lado del cliente, tendrá que enviar XmlHttpRequests al servidor mientras el usuario escribe, y luego, cuando vuelva la información, visualícela. Esta parte requerirá una cantidad decente de javascript, incluidas algunas partes difíciles como devoluciones de llamada y controladores de pulsación de tecla.

En el lado del servidor, tendrá que manejar las XmlHttpRequests, que será algo que contenga lo que el usuario ha escrito hasta ahora. Como una url de

www.yoursite.com/suggest?typed=www.sta

y luego responda con las sugerencias codificadas de alguna manera. (Recomendaría codificar las sugerencias con JSON). También debe obtener las sugerencias de su base de datos, esto podría ser solo una simple llamada a SQL o algo más, dependiendo de su marco.

Pero la parte del lado del servidor es bastante simple. La parte del lado del cliente es más complicada, creo. Encontré este artículo útil

Él está escribiendo cosas en PHP, pero el trabajo del lado del cliente es más o menos el mismo. En particular, puede encontrar útil su CSS.

Yahoo tiene un buen control de autocompletado .

Tienen un muestra aquí. .

Obviamente, esto no hace nada para ayudarlo a obtener los datos, pero parece que tiene su propia fuente y no está realmente buscando obtener datos de Google.

Si desea que el autocompletar use la fecha de su propia base de datos, deberá realizar la búsqueda usted mismo y actualizar las sugerencias utilizando AJAX según el tipo de usuarios. Para la parte de búsqueda, es posible que desee ver Lucene .

Ese control a menudo se llama rueda de palabras. MSDN tiene un tutorial reciente sobre cómo escribir uno con LINQ . Hay dos aspectos críticos: la ejecución diferida y la evaluación perezosa. El artículo tiene código fuente también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top