Uno de los puntos centrales de la reciente Lucene Eurocon fueron las novedades que se introducirán con la versión 4 de Lucene y Solr, siendo la escalabilidad en la nube (Hadoop, SolrCloud) y el tratamiento avanzado del texto (NER, análisis morfológico) otros puntos fuertes de la conferencia. Hubo varias sesiones que trataron este tema resumiendo cuales son los principales avances.

 

Lucene/Solr 4

La versión 4 será un gran paso adelante para Lucene / Solr con cambios importantes a nivel interno enfocados aumentar tanto el rendimiento como, sobretodo, la flexibilidad. Éste último punto fue especialmente remarcado dado que la plataforma ha cumplido ya diez años y en algunos aspectos empieza a dar los signos de su edad. De hecho, debido a la gran cantidad de cambios y refactorizaciones que ha sufrido la API la versión 4 no será retrocompatible con las anteriores, aunque indicaron que se podrán usar los índices generados con las versiones 3.x, pero únicamente en modo lectura.

Empezando por abajo, se ha añadido la capa de codec que es la que se ocupará de leer y escribir el índice. Es el mismo concepto que en los archivos de vídeo y se podrán usar varios tipos de compresión / codificación en vez del único formato fijo que existe actualmente. De este modo se podrá tener un índice que se ajuste mejor a cada caso concreto, ya sea ocupando menos espacio o usando un codec optimizado para acceder a las claves primarias.

La indexación será un proceso más rápido, entre otras cosas gracias una mejora en la concurrencia en las escrituras al índice y a la compactación de los datos en formato binario. Se han modificado las estructuras que almacenan los campos de los documentos para que se pueda almacenar información adicional que posteriormente se usará en las búsquedas.

En cuanto a las consultas, entre otras muchas mejoras se han añadido expresiones regulares, la aplicación de filtros es más rápida y han aumentado la velocidad de las range queries.  Y todo ello acompañado de un consumo mucho más comedido de la memoria y además se reduce el uso del GC, que puede llegar a paralizar el proceso cuando se aproxima al límite de memoria disponible.

 

Flexibilidad en el ranking

La lista de mejoras es casi interminable, pero de todas las novedades que presentaron las que personalmente me atraen más son las relacionadas con el cálculo de la relevancia. Y es que, por fin, con la versión 4 será posible usar varios algoritmos para calcular el ranking de los documentos, algo que, como decimos en catalán, estoy esperant amb candeletes.

Hasta ahora Lucene estaba atado al modelo de espacio vectorial, lo que, por ejemplo, impedía que los investigadores usasen esta plataforma para probar nuevos modelos. Ya no será necesario tener que bajar hasta las entrañas de Lucene y modificar clases que poco o nada tienen que ver con el cálculo de la relevancia de los documentos. Se ha desacoplado el matching del ranking y la nueva API permitirá usar modelos de scoring personalizados sin que tengamos que tocar el núcleo de Lucene.  La llaman la Similarity API y es lo suficientemente flexible para abarcar todo tipo de casos, desde quien tenga suficiente con escribir una única función de scoring hasta los que quieran usar distintos modelos o parámetros diferentes en varios campos y luego combinar los valores en un ranking final. Además se tendrá fácil acceso a nueva información estadística de los campos y los documentos para que podamos jugar con los factores de normalización, algo necesario si después queremos comparar la relevancia general de distintas consultas.

 

¿Cuando estará lista?

La gran pregunta que todo el mundo tenía en mente y que salió varias veces, desde la presentación que abría la conferencia hasta la sesión de cierre, lamentablemente al final quedó sin responder. Nadie se aventuró a predecir una fecha aproximada, los comentarios más optimistas de algunos de los commiters como Uwe Schindler era que no creían que estaría lista este año. Simon Willnauer en su presentación sobre el futuro de Lucene mostró una diapositiva con la línea temporal de las fechas de las distintas releases y situó la versión 4 en un espacio en blanco entre el 2012 y 2014.

Por lo que se vió durante la conferencia queda claro que en algunas partes todavía queda trabajo por hacer, así que podemos ir olvidándonos de tener una versión estable a corto plazo. En todo caso, mientras esperamos a que salga podemos descargarnos las versiones de desarrollo para empezar ir testeándola y familiarizarnos con la nueva API, algo que pidieron encarecidamente durante la conferencia. Eso sí, es altamente recomendable ¡no usarla en producción!

 

Referencias

Solr 4 Highlights, por Mark Miller de Lucid Imagination.

Improved Search with Lucene 4, por Robert Muir de Lucid Imagination.

Heavy Committing: Flexible Indexing in Lucene 4, por Uwe Schindler de SD DataSolutions GmbH.

Lucene Today, Tomorrow & Beyond, por Simon Willnauer de JTeam / Apache Lucene.

 

 

Leave a reply

 

Your email address will not be published.