2010-12-30 11 views
6

Sto pensando di usare Lucene nel mio progetto per fare ricerche molto veloci. So che Lucene crea i propri file dove conserva tutti i dati/gli indici.Quali sono i lati negativi dell'uso di Lucene?

Mi chiedo quali sono gli aspetti negativi dell'utilizzo di Lucene? Ci sono?

Devi fare qualcosa con il database di file o funziona alla grande senza alcun aiuto esterno?

P.S. So che c'è anche Lucene .NET e scommetto che le stesse regole si applicano lì.

risposta

9

Lucene è fantastico. Molto flessibile, sorprendentemente veloce e un'API solida. La mailing list è estremamente utile.

I file richiedono un po 'di manutenzione, ma possono essere eseguiti con gli strumenti forniti. Di primaria importanza è l'ottimizzazione dell'indice a volte, ma è necessario solo se si aggiorna l'indice regolarmente.

Suggerirei di guardare anche in Solr. È essenzialmente una webapp e strumenti che si trovano sopra Lucene. Rende più semplice creare nuovi indici, mantenerli ottimizzati e fornire la sincronizzazione master/slave per un cluster di ricerca scalabile. Questo, ovviamente, dipende dai tuoi bisogni effettivi.

Per un esempio personale, ero solito mantenere un indice di ricerca per una grande e nota società di gioco. L'indice ha centinaia di migliaia di voci in più lingue (in tutto il mondo) e locali. Ha eseguito un milione di ricerche ogni giorno sul cluster senza utilizzare quasi nessuna CPU e una quantità ragionevole di memoria. Il carico è stato testato per circa 300 milioni di ricerche al giorno, sull'hardware che avevamo e sarebbe scalato linearmente aggiungendo semplicemente più scatole al cluser. Solr e Lucene erano gli strumenti principali per questo.

Se I avesse dare un lato negativo, sarebbe una curva di apprendimento. C'è un bel po 'di comprensione, e se vuoi una soluzione veramente ottimizzata, devi conoscerla bene. Tuttavia, questo accadrà con qualsiasi strumento di ricerca che usi, se lo fai tu stesso. La documentazione, i wiki e la mailing list forniscono un ampio supporto per questo aumento.

2

Ho un'esperienza limitata con Lucene, finora è stato grandioso. Gli aspetti negativi che posso vedere sono principalmente da una prospettiva di business:

  1. devo fare attivamente il caso per utilizzando Lucene al mio capo, per impostazione predefinita avremmo utilizzare SQL Server. Per rendere lo switch dovrò dimostrare senza un dubbio che Lucene ha prestazioni migliori (e non solo simili) per il caso di utilizzo che abbiamo. Immagino che questo passi a per "Nessuno è mai stato licenziato per la sindrome di acquisto di apparecchiature IBM ".
  2. Sviluppo in corso/correzioni di errori per Lucene.Net in particolare sono discutibili in questo punto , ancora una vendita più difficile senza . Spero che la community possa riorganizzare .
2

Lucene fa un ottimo lavoro per many people and companies. Il tuo chilometraggio può variare, però. Un possibile problema è il modello di punteggio di Lucene: utilizza una combinazione di TF/IDF e punteggio booleano, mentre altri strumenti IR utilizzano il BM25 probabilistico, che è più forte. Tuttavia, potresti lavorare con Lucene per anni e i risultati della ricerca sarebbero abbastanza buoni. Inoltre, il ridimensionamento su molti milioni di documenti non è facile.

Si riduce al caso d'uso specifico. È meglio iniziare un test utilizzando Solr e vedere se sembra adattarsi alle proprie esigenze.

2

Lucene ha un problema di scalabilità. Le sue prestazioni si riducono quando l'indice diventa sempre più grande.

+1

Questo non è un problema specifico di lucene, lo stesso vale per qualsiasi sistema di indicizzazione. – bdargan

Problemi correlati