PDA

View Full Version : [SOLR - Database] Esperienze nella ricerca full-text con SOLR e un db


agosteeno
23-04-2013, 11:38
Salve a tutti, sto' facendo una valutazione su una struttura in cui ci sia un database per la persistenza dei dati, ma le ricerche dovrebbero essere full-text tramite SOLR.
Siccome non ho esperienza con questa tecnologia sto' valutando quale sia il suo utilizzo, come integrare il suo indice con il db e cosi' via.
Il dubbio principale e' quello che succede quando vengono inseriti nuovi dati su db: la mia idea sarebbe quella simile ad un trigger, che aggiorna l'indice di SOLR ad ogni operazione di insert-update-delete. In alternativa si potrebbe schedulare un full'import, ma non mi sembra una buona idea.
Qualcuno ha esperienza su questa tecnologia e mi saprebbe dare un consiglio?

GByTe87
23-04-2013, 13:17
Nulla ti vieta di fare un inser incrementale in Solr, basta un pelo di logica in più nello strato tra db e solr. :D
(Qua si sta tirando su uno stack del genere e questa è la soluzione implementata in un primo momento, in futuro si andrà verso un sistema di code)

agosteeno
23-04-2013, 14:28
Io immagino una cosa del genere (aggiungendo appunto uno "strato" tra db e solr:
se c'e' un Insert-Update-Delete su db, tramite una form per esempio, allora ci sara' un handler che fa' eseguire l'aggiornamento dell'indice. Se invece viene fatta con uno script sul db allora si dovra' programmare la import in concomitanza all'esecuzione dello script stesso. In questo modo i dati sarebbero sempre aggiornati.
Piuttosto, una cosa che proprio non so' e' quanto possa essere pesante la import degli indici. A occhio mi pare semplicemente l'esecuzione di una query sul db, piu' la scrittura degli indici stessi, ma non so' se c'e' altro.
Quale sarebbe un ordine di grandezza plausibile?
Nel senso, se faccio una insert su db ha senso/convenienza far partire la import immediatamente?

grigor91
23-04-2013, 15:02
Potrebbe esserti utile il delta-import.

agosteeno
23-04-2013, 15:07
Si, ho visto anche quello. In realta' ho visto una specie di trucco a questo proposito. Ti passo il link:
http://wiki.apache.org/solr/DataImportHandlerDeltaQueryViaFullImport

agosteeno
23-04-2013, 15:26
Ah, altra domanda: siccome vorrei fare qualche prova con eclipse-tomcat-postgresql, qualcuno mi saprebbe dare qualche consiglio su come strutturare il progetto? Nel senso di come sistemare le cartelle, dove mettere i vari file (schema.xml e cosi' via per esempio)...

grigor91
24-04-2013, 10:05
Nell'archivio che si scarica dal sito di solr è presente la directory example/solr che contiene la struttura base, di norma si può utilizzare quella.

agosteeno
24-04-2013, 10:08
dunque quando si parla di "Solr Home" si intende quella?

grigor91
24-04-2013, 11:59
Sì, però conviene metterla nella directory che ti è più comoda.
In questo link: http://wiki.apache.org/solr/SolrTomcat in particolare al sottotitolo "Installing Solr instances under Tomcat" viene spiegato come includere solr in tomcat

agosteeno
24-04-2013, 12:08
Grazie per la risposta. Con il Jetty che c'e' gia' incluso sono riuscito a fare quello che mi interessa. Ora pero' vorrei provare a fare una mini applicazione web che usa questa ricerca, dunque mi e' necessario capire come attaccarla.