2010-09-27 19 views
15

È possibile utilizzare Lucene come archivio dati completo (come altre varianti nosql (mongo, divano)).Lucene come archivio dati

So che ci sono alcune limitazioni come i documenti appena aggiornati da un indicizzatore non verranno visualizzati in altro indicizzatore. Quindi abbiamo bisogno di riavviare l'indicizzatore per ottenere gli aggiornamenti.

Ma mi sono imbattuto in solr ultimamente, sembra che questi problemi vengano evitati da una sorta di replica di istantanee.

Quindi ho pensato di usare lucene come un archivio dati poiché utilizza anche lo stesso tipo di documenti (basati su JSON) utilizzati da mongo e couch internamente per gestire i documenti, e il suo algoritmo di indicizzazione comprime i record in modo super veloce.

Ma sono curioso che qualcuno ci abbia provato prima ...? se no, quali sono le ragioni che non scelgono questo approccio.

+1

Non so molto di Lucene, ma ho pensato che fosse principalmente un indicizzatore; che non memorizza il documento, semplicemente li indicizza. Quindi hai bisogno di un archivio dati al di fuori di Lucene comunque ... Ho un senso? – pascal

+1

@pascal, è sbagliato .. lucene può anche memorizzare i documenti. Quando definiamo i campi, possiamo specificare se è necessario archiviare l'articolo o solo indicizzare ... – RameshVel

+2

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

risposta

4

con cui ho lavorato solo con Solr, il derivato Lucene (e mi consiglia di utilizzare Solr a quasi nessuno) quindi il mio parere può essere un po 'prevenuto, ma dovrebbe essere possibile utilizzare Solr come un archivio dati sì, comunque non sarebbe molto utile senza qualcosa di più permanente in background.

Il problema che si può verificare è che l'immissione dei dati in Solr non garantisce che si otterrà indietro quando lo si aspetta. Scoprendo l'uso di sfaccettature piuttosto rigide potresti incontrare problemi nel recuperare i tuoi dati semplicemente perché l'indicizzatore ha deciso di raggruppare i risultati in un certo modo.

Ho sperimentato un po 'con questo approccio, ma l'unico vero vantaggio che ho visto è stato nelle situazioni in cui si desidera che l'indice di ricerca sul lato client sia in grado di effettuare ricerche rapidamente all'interno per poi interrogare il database per ottenere informazioni estese.

Il mio suggerimento è di utilizzare solr per la ricerca e quindi restituire un breve campione dei dati desiderati nonché un indice per ulteriori interrogazioni in un archivio dati tradizionale.

TL; DR: Sì, ma non lo consiglio.

15

C'è anche il problema della durata. Mentre un indice di Lucene non dovrebbe mai corrompersi, l'ho visto accadere. E l'approccio adottato da Lucene per riparare un indice rotto è "buttalo via e ricostruisci dai dati originali". Il che ha perfettamente senso per uno strumento di indicizzazione. Ma richiede di avere i dati memorizzati da qualche altra parte.

+0

questo è un buon punto ... – RameshVel

3

The Guardian uses Solr as their data store. Puoi vedere alcuni dei loro motivi in ​​quella presentazione.

In ogni caso, penso che il loro sito web sia molto trafficato (sicuramente più di qualsiasi altra cosa su cui lavoro), quindi penso che mi sentirei a mio agio dicendo che Solr probabilmente funzionerà per te. .

+0

Secondo la presentazione, il Guardian utilizza ancora un archivio dati relazionale. Solr viene utilizzato come database che alimenta le loro API. – anon

Problemi correlati