Apache+Solr

= = toc = APACHE SOLR =

INTRODUCCIÓN
Apache Solr es una plataforma de búsquedas basada en la librería de programación java del proyecto de Apache Lucene. Funciona como un "servidor de búsquedas" y sus principales características incluyen búsquedas de texto completo, resaltado de resultados, clustering dinámico, y manejo de documentos ricos (como Word y PDF). Solr es escalable, permitiendo realizar búsquedas distribuidas y replicación de índices, y actualmente se está usando en muchos de los sitios más grandes de Internet.

HISTORIA
A finales de 2004, CNET Networks empezó a desarrollar Solr como un proyecto interno para añadir un buscador a su página web. A principios de 2006 CNET Networds decidió donar el código fuente a la Apache Software Foundation. Como cualquier otro proyecto de laApache Software Foundation al principio pasó un periodo de incubación durante el que se resolvieron asuntos de índole organizativa, legal y financiera.

A finales de enero de 2007, Solr abandonó la incubadora de proyectos, ganó estabilidad y fue acumulando funcionalidades, atrayendo a una robusta comunidad de usuarios y colaboradores. Aunque es un proyecto público desde hace relativamente poco, lo emplean varias páginas de alto tráfico.

En septiembre de 2008, se publicó Solr 1.3, una versión con muchas mejoras, como la posibilidad de realizar búsqueda distribuida y mejoras de rendimiento.

En noviembre de 2009 se publicó Solr 1.4, una versión que introduce mejoras en el indexado, la búsqueda y el facetado, además de nuevas funcionalidades como el procesado de documentos enriquecidos (PDF, Word, HTML), el clustering de resultados de búsqueda y una integración con la base de datos superior a la anterior. Incluye además varios plug-in

**PRINCIPALES CARACTERÍSTICAS**
La principal característica de Solr (o al menos la más útil) es su API estilo REST, ya que en vez de usar drivers o APIs programáticas para comunicarnos con Solr podemos hacer peticiones HTTP y obtener resultados en XML o JSON. (por cierto, por si tienen curiosidad, se pronuncia "Solar" y no es un acrónimo). Solr no expone una interfaz REST "perfecta" (que use todos los principios de HTTP 1.1), pero los datos tienen una representación simple que viaja entre el cliente y el servidor, sin ninguna encapsulación rara con SOAP u otras pesadillas. Además, los XML son legibles por personas, y JSON se puede usar para consumir con JavaScript y realizar pruebas. Las ventajas de usar esta interfaz universal (y no propia de un lenguage) son varias: Solr está escrito en Java, pero lo podemos usar con nuestro lenguaje preferido, simplemente usando las peticiones GET para realizar búsquedas en el índice, y POST para agregar documentos.
 * es agnótico del lenguaje porque usa XML y JSON, que hoy en día pueden ser interpretados por casi cualquier cosa. La métrica generalmente es JavaScript: si podemos interpretarlo con JavaScript dentro de todas las limitaciones que impone un navegador, entonces lo podemos interpretar en cualquier otro lugar. Por supuesto, JavaScript tiene soporte nativo para JSON y XML.
 * es agnóstico de los tipos de datos, ya que HTTP sólo transmite textos. Los lenguajes dinámicos como PHP tienen éxito porque su protocolo básico no tiene tipos estrictos. Si la presentación lo va a mostrar por pantalla, ¿por qué no debería alcanzar con un string?
 * más o menos es un protocolo estándar (aunque la representación de datos no lo sea): si alguien inventa una base de datos y publica sus propio protocolo binario de comunicación, tendríamos muchas más librerías.

INSTALACIÓN
REQUERIMIENTOS
 * Java5 o superior instalado. (Nota: a partir de SOLR 4, se requiere Java 1.6)
 * Un contenedor de servlets como Tomcat, Jetty, o resin.
 * Una distribución SOLR
 * Aunque SOLR se esfuerza por ser independiente de la localidad donde se ejecuta el servidor, algunas rutas de código sin darse cuenta puede estar en función de la configuración regional del sistema por defecto, o conjunto de caracteres.

PROGRAMAS DE INSTALACIÓN
 * Detenga su contenedor de servlets
 * De la distribución solr, copia de la war solr en el directorio webapps de su contenedor de servlets como solr.war.
 * De la distribución solr, copiar el ejemplo en home solr ejemplo / solr como una plantilla para su home solr. Inicie el contenedor de servlets, pasando por la ubicación de su home solr. Esto se puede hacer de varias maneras.
 * Ajuste el sistema Java solr.solr.home propiedad a su home solr. (Es decir: mediante la configuración del ejemplo: java -Dsolr.solr.home=/some/dir -jar start.jar
 * Configurar el contenedor de servlets de tal manera que una búsqueda JNDI de "java: comp / env / solr / home" por la webapp solr apuntará a la home solr.
 * La casa solr por defecto es "solr" en el directorio de trabajo actual de la JVM ($ CWD / solr), así que empieza el contenedor de servlets en el directorio que contiene. / Sol
 * Ir a la página de administración solr para verificar que la instalación está funcionando. Será en http://localhost:8080/solr/admin
 * El contenedor de servlets pudo haber comenzado en un puerto distinto del 8080 ... consulte la documentación de los contenedores servlet, si usted no sabe lo que es.
 * Si ya existe un contenedor de servlets funcionando en ese puerto, el suyo puede no iniciarse. Apague el otro o cambie el puerto.

Para obtener información sobre cómo trabajar con más de un índice, o más de una instancia de SOLR, consulte MultipleIndexes.

¿QUIÉN UTILIZA SOLR?
...
 * www.whitehouse.gov/ - Utiliza SOLR a través de Drupal para la búsqueda del sitio w / destacando y facetas
 * Jetwick - una fuente de twitter abierto prototipo de búsqueda basado en SOLR y Wicket con un montón de facetas. Sólo un índice en el momento desde un servidor virtual. Sin embargo: rápido!
 * AT & T interactivo SOLR utiliza para ejecutar la búsqueda local en yp.com, el nuevo yellowpages.com
 * AOL utiliza SOLR.
 * GittiGidiyor.com es la mayor compañía de comercio electrónico en Turquía y utiliza SOLR para la búsqueda.
 * Todas las reparaciones de fontanería ha desplegado solr para optimizar la localización de los fontaneros por código postal.
 * alaTest.com producto revisar el sitio (y aplicaciones móviles) usando Apache SOLR por sus funciones de búsqueda del sitio.
 * GameSpot SOLR utiliza para la búsqueda de sus características.
 * Netflix utiliza SOLR por su función de búsqueda del sitio