Nueva versión de Sphinx

Sphinx es un buscador de texto bastante rápido y potente (pensado para bases de datos grandes), que permite ser integrado con otras bases de datos como MySQL.

Acaban de sacar la versión 0.9.8 después de 15 meses de trabajo (y justo después de que yo ayer me bajara la versión anterior y la instalara). Existen más de 70 nuevas características, de las cuales destacaría:

  • Soporte para libstemmer, permitiendo stemmers para nuevos lenguajes.
  • Posibilidad de eliminar elementos HTML.
  • Decodificar entidades HTML.
  • Añadidas nuevos modos de crear excerpts.
  • Mejorado el motor para obtener queries.
  • Nuevos modos de ordenación de resultados.
  • Nuevas APIs para Java, C y Ruby.

Sphinx

SupoSE: búsquedas en el repositorio de SVN

Subversion Repository Search Engine (SupoSE) es un buscador implementado en Java que nos permite encontrar contenido dentro de nuestro repositorio SVN. Indexa todos los ficheros (menos los binarios) y ayuda a encontrar lo que quieres en todos los ficheros de texto, como por ejemplo los scripts de nuestras aplicaciones, en documentos OpenOffice…
No me queda muy claro si permite indexar ficheros Word, Excel y parecidos y si admite buscar en el historial del repositorio, en la página no lo indican muy bien.
SupoSE
Sea como fuera, es una buena herramienta a tener en cuenta.

Luke: herramienta de diagnóstico para Apache Lucene

Luke es una herramienta de desarrollo y diagnóstico, que accede a los índices de Lucene y permite mostrar y modificar sus contenidos.
luke.png
Es posible navegar mediante el id del documento o por términos de búsqueda, permitiendo ver los documetos y copiarlos en el clipboard. Además permite ver una lista de los términos mas buscados, ejecutar búsquedas, analizar los resultados, borrar los resultados, editar los campos del documento original y reinsertarlos en el índice y optimizar índices.
Requiere Java 1.5 o superior.
Luke

| |

Laboratorio: reconocimiento de un motor de búsqueda para navegadores

Una de las características más útiles que poseen actualmente los navegadores es la posibilidad de personalizar y añadir motores de búsqueda. Firefox lo dispone desde hace tiempo e Internet Explorer lo ha añadido en su última versión. Para poder tener un poco de orden en la creación de estos motores existe OpenSearch, que tal como dice la Wikipedia es:

es un conjunto de tecnologías que permiten publicar los resultados de una búsqueda en un formato adecuado para la sindicación y agregación. Es una forma para que las páginas web y los motores de búsqueda publiquen sus resultados de forma accesible

El proceso es sencillo, añades un XML en tu web y un acceso desde tus páginas para que el navegador lo reconozca y te avise de que existe para instalarlo directamente.

El XML sería el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Sentido Web</ShortName>
<LongName>Sentido Web - Actualidad, productividad y desarrollo web...</LongName>
<Description>Encuentra todo lo que necesitas en tu día a día del desarrollo web.</Description>
<Tags>sentidoweb web internet blogs bitácoras weblogs web2.0 estándares css xhtml web-semántica php javascript</Tags>
<Contact>info@blogsmedia.com</Contact>
<Url type="text/html"     template="http://sentidoweb.com/bm/mt-search.cgi?IncludeBlogs=1&amp;search={searchTerms}&amp;submit.x=0&amp;submit.y=0&amp;submit=Buscar"/>
<Image height="16" width="16" type="image/vnd.microsoft.icon">http://sentidoweb.com/i/favicon.ico</Image>
<Query role="example" searchTerms="php" />
<Developer>Luis Sacristán Pascual</Developer>
<Attribution>BlogsMedia 2007, Creative Commons (Reconocimiento-NoComercial-SinObraDerivada 2.5)</Attribution>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<Language>es-es</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>

Y la línea que hay que añadir a nuestras páginas en el header es la siguiente:

<link rel="search" type="application/opensearchdescription+xml"
href="http://dominio/path/opensearch.xml" title="Nuestro buscador" />

El XML de arriba es el que usamos para Sentido Web y aunque su lectura es clara, explicaremos cada una de las etiquetas del XML:

  • OpenSearchDescription: es la cabecera del XML de OpenSearch.
  • ShortName: contiene el nombre corto que identifica al motor de búsqueda. Debe tener como máximo 16 caracteres.
  • LongName: contiene el nombre largo que identifica al motor de búsqueda. Debe tener como máximo 48 caracteres.
  • Description: descripción del motor de búsqueda. Debe tener un máximo de 1024 caracteres.
  • Tags: conjunto de palabras separadas por espacios que describen el tipo de contenido que nos encontraremos en las búsquedas. Debe tener un máximo de 256 caracteres.
  • Contact: e-mail de contacto.
  • Url: indica el interfaz que el cliente (navegador) podrá utilizar para realizar la búsqueda. Dispone de varios parámetros que nos permiten personalizar la búsqueda:
    • type: tipo MIME del resultado de la búsqueda. Puede ser por ejemplo application/rss+xml para RSS o application/xhtml+xml para XHTML.
    • template: la plantilla de la URL para indicar al cliente cómo realizar la búsqueda, usando esta sintaxis.
    • indexOffset: contiene el índice del primer resultado de búsqueda.
    • pageOffset: contiene el número de la primera página de resultados.
  • Image: URL de la imagen que se asocia al buscador.
  • Query: define una búsqueda pueden realizar los clientes, más información aquí.
  • Developer: creador del xml.
  • AttributionEntidades a las que se les asocia el motor de búsqueda.
  • SyndicationRight: el grado de resultados que provee el buscador que se pueden buscar, mostrar y redistribuir.
  • AdultContent: indica si hay contenido para adultos.
  • Language: idioma del resultado de la búsqueda.
  • OutputEncoding: codificación de los datos de salida.
  • InputEncoding: codificación de los datos de entrada.

Existen otras etiquetas y se le pueden añadir otras si se indica un xmlns en la etiqueta OpenSearchDescription.

Lista de buscadores de código

No reinventar la rueda es algo fundamental a la hora de desarrollar cualquier tipo de aplicación, nos ahorra tiempo de desarrollo y de análisis. Con frecuencia solemos reutilizar código generado con anterioridad, pero otras veces es necesario tirar de Internet para buscar un ejemplo de lo que andamos buscando. En este caso, nada mejor que buscadores especializados:

  • Koders.com: el mejor de todos, fácil de usar, además de encontrar código, nos permite encontrar nuevos proyectos open source.
  • O’Really Labs Code Search: una base de datos con 123.000 ejemplos y más de dos millones de líneas de código.
  • Google Code Search: perteneciente a Google Labs, permite usar operadores para refinar la búsqueda, como por ejemplo lang: o file:.
  • Codase: ofrece uno de los mejores resultados entre los buscadores de código.
  • Krugle: permite buscar código en proyectos open source y compartir tu código.
  • JExamples: buscador de código Java.
  • JSourcery: búsqueda en APIs de Java open source.
  • Merobase: permite encontrar, compartir y reusar componentes de software.
  • All The Code: buscador de código, preferiblemente Java, pero nuevos lenguajes ser añadirán en breve.
  • CSourceSearch
  • EMC Dev Network: búsqueda en más de 300 mil líneas de código.

Top 10+ source code search engines

Vía / dzone

PicFindr: encuentra fotos gratuitas

picfindr.pngPicFindr es un servicio que nos permite buscar imágenes gratuitas dentro de todos los sistemas de licencias existentes y teniendo en cuenta el uso que necesitemos.
Nos permite buscar imágenes gratuitas para usarlas de forma comercial sin necesidad de pedir permiso o pagar algún crédito.
PicFindr se trata de una aplicación realizada en Flash9 que busca dentro de diferentes sitios de almacenamiento de fotografías y nos permite descargarlas. Entre los sitios en los que busca se encuentra stock.xchng, image*after o morgeFile.
PicFindr
Vía / SitePoint Blogs

|

Microsoft pagará a empresas por usar su buscador

live2.pngMicrosoft pretende probar un programa por el cual se pagará a las empresas para que usen su buscador web Live.
A cambio de que se use su buscador, Microsoft ofrece créditos para servicios o training. Lo que pretende conseguir es que a cambio de estos créditos, los usuarios envien comentarios de valor sobre el uso del buscador web.
Incialmente ofrecerá una cantidad fija de 25.000$ a la empresa y entre 2$ y 10$ por cada computadora anualmente, dependiendo esta última cantidad de la cantidad de búsquedas que realice. Así, por ejemplo una empresa con 10.000 ordenadores y desde la que se hagan muchas búsquedas, podrá ganar unos 120.000$, y una empresa con 50.000 ordenadores y un nivel de búsquedas normal, podrá ganar unos 200.000$.
Estoy de acuerdo con opiniones sobre lo absurdo de esta medida, porque aunque yo ya he visto que los administradores te añaden en el IE una barra de búsquedas, no quita que la gente pueda usar el Firefox, o que instale la de Google, o cualquier otra cosa que evite lo que Microsoft y la empresa pretenden.
Microsoft: Use our search and we’ll pay you

Wikia planea un buscador editable

wikia.pngWikia, la empresa cofundada por el creador de la Wikipedia, Jimmy Wales, está planeando desarrollar un buscador que pretende ser gratuito, abierto y transparente. Los usuarios podrán editar y refinar los resultados obtenidos.
Entre sus objetivos se encuentra el tener el 5% de la cuota de usuarios de los buscadores. A diferencia de Google y Yahoo, ellos pretenden no ocultar el código del motor de búsqueda, pudiendo conseguir el éxito de la Wikipedia. Los usuarios se encargarán de ayudar en la creación del índice de sitios web donde buscar, siendo esta lista editable por cualquier otro usuario. Y también podrán modificar los resultados si no han obtenido nada útil.
Wikia plans editable Web search engine
Vía / Techmeme

Videoronk actualizado

videoronk.pngHace unos meses os hablábamos de Videoronk, un buscador de videos entre los alojados en Google Vídeos, Youtube, Metacafe, Myspace, Dailymotion y Vimeo. Ahora nos avisan de las actualizaciones que han realizado, entre las que se encuentran:

  • Estilo 2.0 y efectos que hacen una estética más agradable a la hora de navegar.
  • Nuevo diseño de buscador, más limpio, más claro.
  • Top 5/10 de todos los 5 motores de búsqueda más importantes.
  • Se puede seguir buscando en diferentes servidores o pasando página sin perder el vídeo que estabas visualizando.
  • Envía a un amigo.
  • Vídeos relacionados.
  • Menú superior izquierda de navegación (al estilo google) con todas las características habituales y otras más.
  • Menú gráfico por buscador dentro de las búsquedas.
  • Vídeos más grandes, todos los buscadores de vídeos lo tienen a este tamaño.
  • Nueva herramienta StatsRonk (statsronk.com ). Esta nueva herramienta es un visualizador de estadísticas del dominio en tiempo real. Aporta datos de pagerank, alexarank, páginas linkadas o backlinks de los buscadores más conocidos, sobre tu página web o la web que te interese.

También lo he visto anunciado en Loogic, el cual es un buen referente.

Videoronk

| |

Crear un buscador simple para tu página mediante PHP

Algo fundamental para una página web es el uso de un buscador para acceder al contenido deseado de forma sencilla. Hace tiempo que andaba buscando este artículo y gracias a dzone lo he encontrado.
Se trata de crear un script en PHP para crear un buscador en nuestro sitio web. Para ello primero tendremos que crear un estructura en la base de datos para almacenar la relación entre palabras y páginas. Se crearán tres tablas, una para almacenar las páginas, otra para almacenar las palabras y otra para almacenar la relación entre páginas y palabras.
En segundo lugar deberemos indexar las páginas, usando un script que pasándole una URL, se la baje, le elimine todas las etiquetas HTML, la separe en palabras y guarde todos los datos en las tablas.
Por último crear una página para realizar la búsqueda, un sencillo formulario y una consulta a la BD nos devolverá una lista de páginas que contiene dicha palabra.
La verdad es que más simple no puede ser, y lógicamente no parece muy óptimo. Se le podrían hacer varios ajustes al script, como por ejemplo crear una lista de palabras “tabú”, las cuales no indexará (preposiciones, artículos). También en la tabla de relaciones entre páginas-palabras se le podría incluir la posición de la palabra, así si queremos buscar dos palabras seguidas, poder localizar mejor estos casos. Otra opción sería localizar las etiquetas HTML de cabeceras (h1, h2, …) de la página, las etiquetas para resaltar texto (strong, em, b, i, u) y darle una mayor importancia o prioridad a esas palabras en la tabla de relaciones, así los resultados que nos devuelva la consulta, los podemos ordenar por prioridad, y no tener que encontrarnos entre los primeros resultados páginas que poco tienen que ver con lo que buscamos simplemente porque contienen la palabra. Y por último, se me ocurre que en la tabla de páginas se le podría añadir un campo que indicara el número de visitas que recibe, priorizando las busquedas en páginas más visitadas.
Este método no creo que sea el mejor, y seguro que hay algoritmos más optimos, pero creo que motores de búsqueda implementados en algunos CMS como por ejemplo WordPress son peores aún. Por ejemplo WordPress busca la palabra en cada post escrito y almacenado en la BD. Y si el CMS ya usa expresiones regulares peor aún, porque aún lo mucho que me gustan, si que es cierto que consumen muchos recursos. Así les ha podido pasar a algunos blogs que han tenido que usar la búsqueda mediante Google en vez de la que incluye su CMS.
Algo que también estaría muy bien sería dotar al motor de la capacidad de ignorar acentos, así si buscamos “cancion” nos debería devolver los mismos resultados que si buscamos “canción”. Con el método explicado sería relativamente sencillo, ya que solo habría que almacenar las palabras en la tabla de palabras sin acento y luego al ser enviada por el buscador, quitarle los acentos para que se busque sin ellos.
Building a Simple Search Engine with PHP
Vía / dzone