2010-09-27 19 views
15

¿Es posible usar Lucene como un almacén de datos en toda regla (como otras variantes (mongo, sofá) nosql).Lucene como almacén de datos

Sé que hay algunas limitaciones, como los documentos recién actualizados por un indexador no se mostrarán en otro indexador. Entonces, debemos reiniciar el indexador para obtener las actualizaciones.

Pero me topo con solr últimamente, parece que estos problemas se evitan mediante algún tipo de replicación de instantáneas.

Así que pensé que podría usar lucene como almacén de datos ya que también usa el mismo tipo de documentos (basados ​​en JSON) utilizados internamente por mongo y couch para administrar documentos, y su algoritmo de indexación comprobado obtiene los registros súper rápido.

Pero tengo curiosidad ¿Alguien ha intentado eso antes ...? si no, cuáles son las razones por las que no se elige este enfoque.

+1

No sé mucho sobre Lucene, pero pensé que era principalmente un indexador; que no almacena el documento, simplemente lo indexa. Entonces, de todos modos, necesitas una tienda de datos fuera de Lucene ... ¿Tengo algún sentido? – pascal

+1

@pascal, es incorrecto ... lucene también puede almacenar documentos. Cuando definimos los campos, podemos especificar si necesitamos almacenar el elemento o simplemente indexar ... – RameshVel

+2

Ver http://stackoverflow.com/questions/3215029/nosql-mongodb-vs-lucene-or-solr-as-your -database/3216550 # 3216550 – Mikos

Respuesta

4

Solo he trabajado con Solr, el derivado de Lucene (y recomendaría usar Solr para casi cualquier persona) así que mi opinión puede ser un poco parcial, pero debería ser posible usar Solr como almacén de datos, sí, sin embargo no sería muy útil sin algo más permanente en el fondo.

El problema que puede encontrar es que ingresar datos en Solr no garantiza que lo recuperará cuando lo espera. A excepción del uso de facetas bastante estrictas, puede tener problemas para recuperar sus datos simplemente porque el indexador ha decidido agrupar los resultados de cierta manera.

He experimentado un poco con este enfoque, pero el único beneficio real que vi fue en situaciones en las que desea el índice de búsqueda en el lado del cliente para que puedan buscar rápidamente internamente y luego consultar la base de datos para ampliar la información.

Mi sugerencia es utilizar solr para la búsqueda y luego hacer que devuelva una muestra corta de los datos que desee, así como un índice para consultas adicionales en un almacén de datos tradicional.

TL; DR: Sí, pero yo no lo recomendaría.

15

También existe el problema de la durabilidad. Mientras que un índice Lucene no debería corromperse nunca, lo he visto suceder. Y el enfoque que Lucene lleva a reparar un índice roto es "tirarlo y reconstruir a partir de los datos originales". Lo cual tiene perfecto sentido para una herramienta de indexación. Pero sí requiere que los datos estén almacenados en otro lugar.

+0

ese es un buen punto ... – RameshVel

3

The Guardian uses Solr as their data store. Puedes ver algunas de sus razones en esa presentación de diapositivas.

En cualquier caso, creo que su sitio web es muy objeto de tráfico (sin duda más que cualquier cosa en la que trabaje), así que creo que me sentiría cómodo al decir que Solr probablemente funcione para usted. .

+0

De acuerdo con la presentación de diapositivas, The Guardian todavía usa un almacén de datos relacionales. Solr se usa como la base de datos que impulsa su API. – anon

Cuestiones relacionadas