El hecho de estar escrito en Java permite, como dijimos arriba, utilizar a Solr en cualquier plataforma. Los comandos se escriben normalmente en HTTP (Hypertext Transfer Protocol) y para los archivos que se van a guardar se utiliza XML (Extensible Markup Language). Apache Solr también ofrece a los desarrolladores de Python y Ruby su conocido lenguaje de programación a través de una API. En cambio, para aquellos que normalmente trabajan con la Notación de Objetos JavaScript (JSON), ElasticSearch proporciona el entorno óptimo. Con una API, Solr también puede trabajar con este formato.
Aunque está basado en Lucene y encaja perfectamente en su arquitectura, Solr también trabaja solo. Es compatible con contenedores-servidor como Apache Tomcat.
Indexación para resultados precisos en fracciones de segundo
Estructuralmente, el servlet se basa en un archivo invertido (inverted index). Solr utiliza la biblioteca de Lucene para ello. Los archivos invertidos son un subtipo del índice de la base de datos y tienen la función de acelerar la recuperación de información. Dentro de la biblioteca, el índice almacena contenidos, que pueden ser palabras o números. Cuando un usuario busca cierto contenido en un sitio web, suele introducir uno o dos términos de búsqueda relevantes para el tema. En lugar de rastrear estas palabras en todo el sitio web, Solr recurre a la biblioteca.
La biblioteca indexa todas las palabras clave importantes casi en tiempo real y las vincula a los documentos del sitio web en los que se encuentran estas palabras. Pero la búsqueda se limita exclusivamente al índice. La lista de resultados muestra entonces todos los documentos que según el índice contienen esta palabra al menos una vez. Este tipo de búsqueda se corresponde con la búsqueda análoga en un libro: cuando se busca un determinado término en el glosario, se encuentra la página o las páginas donde se encuentra y es ahí a donde se dirige el lector. Siguiendo el mismo principio, la búsqueda vertical muestra una lista de resultados con enlaces a los documentos.
Para que este proceso funcione sin problemas, cada vez que se añade un nuevo documento al catálogo del sitio web es necesario introducir todas las palabras clave y los metadatos (como autor o año de publicación) en la biblioteca. Esto hace que el trabajo interno con Lucene resulte algo tedioso. Con Solr estos pasos pueden automatizarse.
Relevancia y filtro
Apache Solr utiliza la ontología y taxonomía de Lucene para ofrecer resultados de búsqueda altamente precisos con la ayuda de las variables booleanas y el truncamiento matemático, que ya son conocidos por Lucene. A la caché de Lucene, Solr añade una caché de nivel superior. Con esto, el servlet recuerda consultas de búsqueda frecuentes, incluso si consisten en variables complejas, optimizándose así la velocidad de búsqueda.
De cara a mantener a los usuarios en un sitio web, hay que ofrecerles una buena experiencia de usuario. Esto incluye, en particular, hacer las ofertas adecuadas. Por ejemplo, si tus lectores están buscando información sobre apicultura, los textos que deberían aparecer entre los primeros resultados deberían tratar de los ciclos de vida de las abejas y de los métodos de crianza. Otras cuestiones, p. ej., dónde comprar miel ecológica, no deberían formar parte de los resultados de la búsqueda o, al menos, no en lugares prominentes.
En cualquier caso, estén los usuarios buscando un término específico o deban obtener sugerencias con enlaces internos al final de un artículo interesante, es crucial que los resultados sean relevantes. Y para garantizar que el usuario obtiene los resultados más relevantes a su búsqueda, Solr utiliza la medida “tf-idf”.