tutorial library descargar lucene solr nosql

library - ¿Por qué las tiendas de documentos como Lucene/Solr no están incluidas en las conversaciones NoSQL?



descargar lucene (6)

Todos nosotros nos hemos topado con el reciente despliegue de soluciones sin SQL últimamente. MongoDB, CouchDB, BigTable, Cassandra y otros se han enumerado como opciones sin SQL. Aquí hay un ejemplo:

http://architects.dzone.com/articles/what-nosql-store-should-i-use

Sin embargo, hace tres años, un compañero de trabajo y yo estábamos usando Lucene.NET como lo que parece ajustarse a la descripción de no-SQL. No lo usamos solo para consultas de búsqueda ingresadas por el usuario; lo usamos para hacer que algunos datos de tabla RDBMS reindexados sean extremadamente efectivos. Implementamos nuestro propio servicio .NET sort-of-equivalent-to-Solr para administrar estos índices y hacerlos invocables. Cuando me fui de la compañía, el equipo cambió a Solr. (Para aquellos que no lo saben, Solr es un servicio web que envuelve a Lucene con consultas y volcados de índices recuperables).

Lo que no entiendo es, ¿por qué Solr no se cuenta en las listas típicas de opciones de solución sin SQL? ¿Me estoy perdiendo de algo? Supongo que hay razones técnicas por las que Solr no es comparable a CouchDB, etc., y de hecho, entiendo que CouchDB utiliza Lucene como su almacén de datos (¿sí?), Pero ¿qué descalifica a Solr?

No estoy preguntando por algún tipo de fanboy de Solr ni nada, simplemente no entiendo por qué Solr y similares no se ajustan a la definición de no SQL, y si Solr técnicamente se ajusta a la definición, entonces ¿qué pasa con lo que probablemente hace la gente pooh-pooh es? Pregunto porque tengo dificultades para determinar si debo continuar usando soluciones basadas en Lucene (como Solr) para las soluciones que construyo o si realmente debería investigar más con estas otras opciones.


Creo que stimpy77 está parcialmente en lo cierto al decir que el NoSQL es una marca . Pero también, NoSQL significa que es una plataforma de almacenamiento de datos que es más simple / más fácil que las soluciones basadas en SQL. Y creo que mientras Solr / Lucene comparte algunos aspectos (almacenan datos), realmente se echa de menos pensar que Solr / Lucene podría usarse como almacenamiento primario de datos para cualquier cosa que tenga relaciones. Claro, muchos documentos se pueden arrojar en él, y la búsqueda poderosa los retrae. Pero tan pronto como desee relaciones, otros, como CouchDB y otros, lo harán mucho mejor y tendrán una sintaxis de consulta de algún tipo. La búsqueda es una solución de banda en ese caso. Piense en el caso de uso "buscar todos los documentos etiquetados con la palabra ''coche''". Si tengo algunas estructuras en mis datos, entonces es fácil para mí obtener el documento para el auto etiquetado, y retirar a todos. En contra de confiar en una consulta de búsqueda que incluye fq = tag: ''auto''. La búsqueda es cada vez más poderosa cuanto menos relaciones tenga, pero mientras más relaciones, mejor será un almacén de datos como CouchDB y sus hermanos. Es por eso que todavía ves CouchDB y amigos emparejados con Solr, y viceversa. Deje que cada uno haga lo que mejor sabe hacer.

Por supuesto, eso no quiere decir que no pueda aprovechar el almacenamiento de sus datos de origen en Solr, ¡eso puede ser una herramienta poderosa para usar!


Creo que la característica más relevante de solr / lucene que cae de la lista nosql es porque hasta hace poco, hacer que lucene funcionara como un sistema en tiempo real era un dolor. El flujo de trabajo habitual para cualquier aplicación de rendimiento era indexar las actualizaciones incrementales en lotes y actualizar el índice cada 5 minutos, por ejemplo.



El último pero pocos puntos, se trata de la diferencia, no la mencionada aquí, como estrategia de marketing en la que solr sale de NoSQL

Lucene / Solr - Voy a usar Solr, ya que Solr usa lucene internamente y tiene características adicionales. Así que Solr es básicamente una actualización de Lucene con un nuevo constume.

  • Solr se usa principalmente para crear facetas e indexar textos sin formato para motores de búsqueda.

  • Solr puede usar la mayoría de las bases de datos para almacenar sus datos. No es consistente mantener los datos en sol, ya que usan discos directamente.

  • Las bases de datos NoSQL son fáciles de aprender en comparación con Solr. Solr tiene más o menos muchas configuraciones y conceptos (p. Ej., Campos).

  • El rendimiento es algo que tenemos que considerar b / w. Solr proporciona un alto rendimiento en comparación con otras bases de datos NoSQL.

Nota: La combinación del Solr con algunas bases de datos proporciona el mejor rendimiento.

Resumen: Solr es también un datastore NoSQL que es un predecesor de todas las bases de datos NoSQL. Lo cual no consiguió la exageración de los demás. Pero aún en el campo debido a su rendimiento y potencia.


Las principales diferencias entre un sql y un solr en términos operacionales son las siguientes en mi opinión.

  1. Solr requiere un almacén de datos intermedio (base de datos o archivos XML), mientras que nosql mismo un almacén de datos directo.
  2. No puede hacer una escritura constante en Solr (Solr 4.0 parece brindar ese soporte) y solo puede indexar al máximo cada 2 minutos y 200 registros (lo cual es muy lento para escrituras de alto rendimiento y se lo fuerza a un almacenamiento intermedio) .
  3. Es necesario cambiar / definir el esquema cuando altera lo que está almacenado en el documento. NoSQL no tiene tales definiciones.
  4. Los índices de Solr tienen implicaciones de rendimiento cuando su tamaño de índice crece, mientras que NoSQL está optimizado para él (o pretende ser :)
  5. Solr tiene los algoritmos de búsqueda de lucene subyacentes agrupados, pero en NoSQL necesita construirlos. Esto se aplica a la búsqueda de facetas magnífica o la búsqueda de documentos ultrarrápida proporcionada por Solr.

Una vez escuché una entrevista con la autora Ursula K. LeGuin sobre la escritura de ficción. El entrevistador le preguntó acerca de autores que trabajan en diferentes géneros de escritura. ¿Qué hace que un autor sea un escritor romántico, y otro escritor de misterio, y otro un escritor de ciencia ficción? LeGuin respondió explicando:

El género se trata de marketing, no de contenido.

Fue una declaración reveladora.

Creo que lo mismo se aplica a las soluciones tecnológicas. El movimiento NoSQL está atrayendo la atención porque está lleno de energía de marketing en este momento. Las tiendas de datos NoSQL como Hadoop, CouchDB, MongoDB, tienen empresas comerciales que las respaldan, empujando sus soluciones como nuevas, innovadoras y emocionantes para que puedan hacer crecer su negocio. El término "NoSQL" es una marca de marketing que les ayuda a explicar su valor.

Tiene razón en que Lucene / Solr es técnicamente muy similar a una tienda de documentos NoSQL: es una bolsa de documentos desnormalizados (su término) con campos que no son necesariamente consistentes en toda la colección de documentos. Está indexado de una manera sofisticada para permitirle buscar en todos los campos o campos específicos.

Pero ese no es el género que Lucene usa para explicar su valor. No tienen la misma misión para hacer crecer un mercado y un negocio, ya que están gestionados por la Fundación Apache. Están felices de centrarse en el caso de uso de la búsqueda de texto completo, a pesar de que la tecnología podría utilizarse de otras maneras. Están siguiendo un principio de éxito del software: hacer una cosa y hacerlo bien.