Posted on March 6, 2010 by Damian
Ando perdido últimamente, y practicamente no actualizo el blog. Eso es debido a que estoy inmerso en un Proyecto grande, con lanzamiento en varios paises al mismo tiempo y ocupo TODO mi tiempo libre y el que no tengo también en el. Pronto (espero) le voy a decir de que se trata.
Volviendo al tema original del post, les voy a enseñar como hacer un buscador por relevancia con mysql.
La forma tradicional que usamos al buscar con mysql es con el comando LIKE
SELECT * FROM anuncios WHERE titulo LIKE '%perro%' OR descripcion LIKE '%perro%'
Esto nos devuelve todos los anuncios que en el titulo o en la descripcion aparezca la palabra ‘perro’ o ‘caraperro’ o cualquier otra que contenga ‘perro’.
Estos resultado podriamos ordenarlos por ejemplo por la fecha de publicación, por el titulo, etc.
Pero que pasa cuando queremos ordenarlo por RELEVANCIA, osea queremos que el anuncio que hable más de perros aparesca primero y asi consecutivamente. Aqui es donde entra en juego la funcion de mysql FULL-TEXT .
Lo primero que tenemos que hacer antes de hacer un query en convertir nuestros campos en full-text .Para ello simplemente hacemos:
ALTER TABLE anuncios ADD FULLTEXT(titulo, descripcion);
Una ves echo esto , a la hora de hacer la QUERY vamos a usar las funciona de fulltext search MATCH y AGAINST de la siguiente manera:
SELECT * FROM anuncios WHERE MATCH(titulo, descripcion) AGAINST ('perro')
Esta línea utiliza la función MATCH … AGAINST … que encuentra el texto buscado, usando consultas similares a como lo hacen los motores de búsqueda. Además, se calcula internamente una puntuación en función de como aparecen y la cantidad de términos buscados dentro de nuestro titulo y descripcion.
¿Como perfeccionar la busqueda?
SELECT * , MATCH (titulo,descripcion) AGAINST ('perro') AS puntuacion FROM anuncios WHERE MATCH (titulo, descripcion) AGAINST ('perro') ORDER BY puntuacion DESC LIMIT 50
Esta consulta devolverá las primeras 50 consultas ordenadas por la puntuación. Jugando un poco con CSS pueden lograr mostrar estrellitas o barras de progreso segun la puntuación, pero ese ya es otro tema aparte.
Como todo esto tiene alguna limitación que otra. Por ejemplo no toma en cuenta palabras con menos de 4 caracteres.
De todas formas es la forma mas eficiente y rapida de buscar , sobre todo con múltiples palabras.
Un saludo y espero que les haya servido
VN:F [1.7.0_948]
Rating: 0.0/5 (0 votes cast)
Posted on September 25, 2009 by Damian
Se que últimamente los tengo abandonados pero no me da el tiempo para tantas cosas, intentaré escribir un par de artículos este fin de semana.
Ahora los que les traigo es una lista de paises con sus respectivas provincias / estados en español. Se trata de un archivo SQL listo para ingresar en la base de datos con un total de 239 paises y 4291 provincias.
Esto viene genial para cuando necesitamos hacer por ejemplo un select dependiente (lo explico en el próximo artículo) en un formulario para que una ves elegimos el pais nos muestre sus respectivas provincias. Espero que les sirva de ayuda. Un saludo y hasta pronto.
Descargar Paises.sql
VN:F [1.7.0_948]
Rating: 0.0/5 (0 votes cast)
Posted on August 22, 2009 by Damian
Siguiendo el hilo del post anterior aca les dejo el resto del listado de fuentes tipográficas echas a mano.
MrHodgey

VN:F [1.7.0_948]
Rating: 5.0/5 (1 vote cast)
Posted on August 20, 2009 by Damian
De la mano de Smashing magazine llega este listado impresionante de fuentes tipográficas de estilo “echas a mano”. Algunas de ellas echas a mano realmente y escaneadas luego a la computadora. Son ideales para inspirarse o para el diseño creativo usando un estilo diferente al que estamos acostumbrados.
Fiodor Sumkin

Maxwell Lord

VN:F [1.7.0_948]
Rating: 0.0/5 (0 votes cast)
Posted on August 15, 2009 by Damian
Con jqTransform nunca fue tan facil modificar el aspecto de un formulario dandole un aire elegante en cualquier navegador.

La forma de implementarlos es como siempre super sencilla:
1- Añadir el plugin a la cabezera de tu web
<script src="js/jquery.js" type="text/javascript"></script> <script src="js/jquery.jqtransform.min.js" type="text/javascript"></script>
2- Escribir un formulario y añadirle la clase correspondiente
<form class="jqtransform">
<label for="name">Name: </label>
<input name="name" type="text" />
<input type="submit" value="send" />
</form>
3- Activar el plugin
<script type="text/javascript">
$(function() {
//Todos los formularios con clase jqtransform
$("form.jqtransform").jqTransform();
});
</script>
Como ven , super sencillo de usar. Para descargarlo visiten la página del autor.
Para ver un ejemplo online pueden ver el usado en este tutorial
VN:F [1.7.0_948]
Rating: 0.0/5 (0 votes cast)