Sono nuovo di Solr. Sto cercando di creare un server che memorizza i dati strutturati in un database e che può essere cercato utilizzando Solr/Lucene. Il server può essere raggruppato in un numero qualsiasi di nodi identici per l'alta disponibilità.Si può fare in modo che l'indice Apache Solr sia transazionale in modo coerente con il DB che viene indicizzato?
Sembra che la configurazione standard Solr memorizzi l'indice in un file sul file system. Questo sembra introdurre alcuni problemi con coerenza e clustering.
Come faccio a rendere l'indice coerente con la transazione con il DB? C'è un modo per fare questo? (ad esempio, un modo per rendere i commit al DB coordinato con commit all'indice Solr?)
C'è un modo per memorizzare l'indice nel DB (relazionale)? Ciò risolverebbe i problemi di coerenza e i problemi di cluster, ma non trovo molta letteratura su come farlo.
Se configurato come un cluster, ciascun nodo del cluster deve mantenere la propria copia dell'indice. Non è chiaro se più istanze di Solr possano aggiornare un singolo indice o meno.
Oppure - ci arrendiamo accettando che l'indice non è garantito per essere coerente, ricostruirlo ogni giorno o così? Cosa fanno normalmente le persone a riguardo?
Questo può aiutare con gli aggiornamenti di gara-zione su un unico documento http://stackoverflow.com/questions/12857218/versioning-and-optimistic-locking-in-solr-4-0 Avete problemi specifici come l'atomicità multi-doc in mente? – aitchnyu
Il problema specifico consiste semplicemente nel fornire un indice a un'applicazione enterprise con cluster. Ogni nodo sta aggiornando il database in modo indipendente. Poiché Solr non memorizza i dati in un DB, ogni nodo deve avere una propria copia di Solr in esecuzione e ciascuno sul proprio indice. Il problema è semplicemente quello di assicurarsi che ogni Solr venga informato di tutte le modifiche da ciascuno dei nodi del cluster. Nel caso in cui un nodo si ritiri, il database tornerà a uno stato coerente, ma l'indice Solr potrebbe avere più o meno aggiornamenti in esso. Questi indici saranno semplicemente sbagliati fino alla ricostruzione, che deve essere eseguita periodicamente. – AgilePro