SlideShare uma empresa Scribd logo
1 de 43
Apache SOLR + Drupal Claudio Cicali Claudio Cicali (vedi ultima slide)
Drupal + Apache SOLR  – Claudio Cicali Un paio d'anni fa, un nostro cliente...
Drupal + Apache SOLR  – Claudio Cicali ,[object Object]
Necessità di ri-pubblicazione su siti “remoti”, Drupal o no
Sistema di ricerca sofisticato e – ovviamente - veloce Il progetto
Drupal + Apache SOLR  – Claudio Cicali Nasceva «Mittwoch»
Drupal + Apache SOLR  – Claudio Cicali OK, e la ricerca? Il sistema di  ricerca fulltext core  di Drupal è stato abbandonato (quasi) subito In realtà ci abbiamo anche provato, ma... ,[object Object]
Tabelle di servizio alla ricerca nello  stesso DB  dei documenti
Indicizzazione contenuti in  puro PHP
Impatta direttamente (e in maniera poco predicibile) le  prestazioni del cronjob
Non delegabile  su altri server
Interfaccia utente non eccezionale per la ricerca avanzata
Modulo esterno per la ricerca a faccette (poco scalabile esso stesso)
Drupal + Apache SOLR  – Claudio Cicali Here comes... Solr is the popular, blazing fast open source enterprise  search   platform   from the Apache Lucene project (da http://lucene.apache.org/solr/intro) (a onor del vero sono stati condotti anche altri esperimenti...)
Drupal + Apache SOLR  – Claudio Cicali Troppo potenza! Per quello che fa e per come lo fa,  non è semplicissimo  da domare Né è troppo facile capire  cosa  possa fare per me Né è facile capire quale sia il  modo migliore  di fare una certa cosa Se queste parole vi fanno venire in mente Drupal ho ottenuto il risultato sperato ;) Questo è sicuramente il  punto più arduo  da superare; per tutto il resto c'è il manuale
Drupal + Apache SOLR  – Claudio Cicali In breve... SOLR è un sistema (server) al quale tu  dai  un set di documenti e successivamente  richiedi  quelli che soddisfano certe  condizioni /parametri Dunque esiste: ,[object Object]
un modo per  RICHIEDERE  informazioni
un modo per definire una  struttura  sulla quale imporre delle condizioni
Drupal + Apache SOLR  – Claudio Cicali «Product Highlights» Vale la pena cercare di capire come funziona? ,[object Object]
Ottime prestazioni ( caching  out-of-the-box)
Scalabile all'infinito perché viene gestita la  replicazione  degli indici
Si appoggia su tecnologie robuste e  enterprise grade  da anni (Lucene, Tomcat, Java)
Supporto alla  faceted search  (ricerca a faccette) continua...
Drupal + Apache SOLR  – Claudio Cicali «Product Highlights» Vale la pena cercare di capire come funziona? ,[object Object]
Estensibile (vuoi che la risposta alle ricerche sia in CSV?)
Agnostico sul tipo di documento (nodi Drupal o un catalogo di parti meccaniche). La ricerca è sui campi, non su dei  blob
Query time field & document boosting (no reindex)
Highlight e snippet
Gli indici contengono i dati serializzati (query del tipo: “cerca FORD nel TITLE e ritornami BODY, DATE e AUTHOR”)
Drupal + Apache SOLR  – Claudio Cicali Consigliato! In pratica permette di rispondere sempre “Sì” alle richieste che riguardano un sistema di ricerca. Se (gran) parte del valore della nostra applicazione o della nostra azienda sta nel sistema di ricerca, credo sia praticamente obbligatorio capire in cosa SOLR possa aiutarci. Se poi l' interfaccia con Drupal  è già pronta, tanto meglio ;)
Drupal + Apache SOLR  – Claudio Cicali Zooming In... Apache SOLR Server La nostra applicazione
Drupal + Apache SOLR  – Claudio Cicali Zooming in... Apache SOLR Server HTTP POST/GET La nostra applicazione DB INDEX
Drupal + Apache SOLR  – Claudio Cicali Zooming in... HTTP POST/GET DARE e RICHIEDERE STRUTTURA SOLR Server La nostra applicazione DB INDEX schema.xml solrconfig.xml
Drupal + Apache SOLR  – Claudio Cicali La struttura dei dati Ogni documento che viene spedito a SOLR non è un blob informe di dati ma è invece composto da CAMPI, tanti quanti se ne ritengano necessari. Questi campi vengono definiti in fase di progettazione del nostro indice.  È  ben presente il concetto di  tipo di dato  (ed è possibile addirittura definirne di nuovi)
Drupal + Apache SOLR  – Claudio Cicali La struttura dei dati SOLR necessita di una  definizione esplicita  della struttura dei documenti che gli diamo in pasto. Questa struttura viene definita tramite il file SCHEMA.XML ... < fieldType  name=&quot;integer&quot; class=&quot;solr.IntField&quot;/> <fieldType name=&quot;long&quot; class=&quot;solr.LongField&quot;/> <fieldType name=&quot;float&quot; class=&quot;solr.FloatField&quot;/> ... < field  name=&quot;id&quot; type=&quot;string&quot;  indexed =&quot;true&quot;  stored =&quot;true&quot;  required =&quot;true&quot; /> <field name=&quot;body&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;teaser&quot; type=&quot;text&quot; indexed=&quot;false&quot; stored=&quot;true&quot;/> <field name=&quot;type&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;type_name&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;path&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> ... <uniqueKey>id</uniqueKey> <defaultSearchField>body</defaultSearchField> ...
La struttura dei dati I campi sono analizzati/filtrati sia in ingresso (index time) che in uscita (query time) [...] <fieldType name=&quot;text&quot; class=&quot;solr.TextField&quot;> <analyzer type=&quot;index&quot;> <charFilter class=&quot;solr.MappingCharFilterFactory&quot; mapping=&quot;mapping-ISOLatin1Accent.txt&quot;/> <tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/> <filter class=&quot;solr.SynonymFilterFactory&quot; synonyms=&quot;index_synonyms.txt&quot; ignoreCase=&quot;true&quot; expand=&quot;false&quot;/> <filter class=&quot;solr.StopFilterFactory&quot; ignoreCase=&quot;true&quot; words=&quot;stopwords.txt&quot; /> <filter class=&quot;solr.LowerCaseFilterFactory&quot;/> <filter class=&quot;solr.SnowballPorterFilterFactory&quot; language=&quot;English&quot; protected=&quot;protwords.txt&quot;/> <filter class=&quot;solr.RemoveDuplicatesTokenFilterFactory&quot;/> </analyzer> <analyzer type=&quot;query&quot;> <charFilter class=&quot;solr.MappingCharFilterFactory&quot; mapping=&quot;mapping-ISOLatin1Accent.txt&quot;/> <tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/> <filter class=&quot;solr.SynonymFilterFactory&quot; synonyms=&quot;synonyms.txt&quot; ignoreCase=&quot;true&quot; expand=&quot;true&quot;/> <filter class=&quot;solr.StopFilterFactory&quot; ignoreCase=&quot;true&quot; words=&quot;stopwords.txt&quot; /> <filter class=&quot;solr.LowerCaseFilterFactory&quot;/> <filter class=&quot;solr.SnowballPorterFilterFactory&quot; language=&quot;English&quot; protected=&quot;protwords.txt&quot;/> <filter class=&quot;solr.RemoveDuplicatesTokenFilterFactory&quot;/> </analyzer> </fieldType> [...] Drupal + Apache SOLR  – Claudio Cicali
Drupal + Apache SOLR  – Claudio Cicali Tutto molto bello, ma... Sebbene la definizione dello SCHEMA.XML rappresenti la parte  più complessa  e caratteristica della configurazione di un server SOLR, questo lavoro per quanto riguarda l'integrazione con Drupal è  già fatto . Il modulo che integra Drupal con SOLR, infatti, provvede anche uno SCHEMA.XML pronto all'uso (e anche un solrconfig.xml).
Drupal + Apache SOLR  – Claudio Cicali Mettiamolo in moto... Versione corrente, SOLR 1.4, 10 novembre 2009 SOLR è una  web application Java  e per funzionare ha dunque bisogno di un servlet container Appena scaricato SOLR è comunque pronto all'uso: insieme a lui viene distribuito  Jetty Per provarlo non è dunque necessario essere degli esperti J2EE In produzione è caldamente consigliato l'utilizzo di  Tomcat
Drupal + Apache SOLR  – Claudio Cicali Una volta partito SOLR attiva due  listener HTTP . Uno per le richieste applicative (ricerca e aggiornamento indici) e uno che fornisce una (orribile) interfaccia di amministrazione
Drupal + Apache SOLR  – Claudio Cicali Interfaccia di “ispezione”
Drupal + Apache SOLR  – Claudio Cicali Interfaccia di “ispezione” SOLR “full interface”
Risposta XML Drupal + Apache SOLR  – Claudio Cicali
Drupal + Apache SOLR  – Claudio Cicali Sommario dei componenti

Mais conteúdo relacionado

Semelhante a Drupal + Apache SOLR

How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven Design
Andrea Saltarello
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Sandro Rossetti
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deft Association
 

Semelhante a Drupal + Apache SOLR (20)

Tesi1
Tesi1Tesi1
Tesi1
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the Cloud
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.Forms
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve
 
RDFa 1.1 - Seminario Web Semantico 2015
 RDFa 1.1 - Seminario Web Semantico 2015 RDFa 1.1 - Seminario Web Semantico 2015
RDFa 1.1 - Seminario Web Semantico 2015
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
Sencha touch: Sviluppare un'app - 4° parte
Sencha touch: Sviluppare un'app - 4° parteSencha touch: Sviluppare un'app - 4° parte
Sencha touch: Sviluppare un'app - 4° parte
 
Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniCreare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
AWR analysis (o di come utilizzare l’AWR per condurre un’analisi di un databa...
 
Elasticsearch a quick introduction
Elasticsearch a quick introductionElasticsearch a quick introduction
Elasticsearch a quick introduction
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven Design
 
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 

Drupal + Apache SOLR

  • 1. Apache SOLR + Drupal Claudio Cicali Claudio Cicali (vedi ultima slide)
  • 2. Drupal + Apache SOLR – Claudio Cicali Un paio d'anni fa, un nostro cliente...
  • 3.
  • 4. Necessità di ri-pubblicazione su siti “remoti”, Drupal o no
  • 5. Sistema di ricerca sofisticato e – ovviamente - veloce Il progetto
  • 6. Drupal + Apache SOLR – Claudio Cicali Nasceva «Mittwoch»
  • 7.
  • 8. Tabelle di servizio alla ricerca nello stesso DB dei documenti
  • 10. Impatta direttamente (e in maniera poco predicibile) le prestazioni del cronjob
  • 11. Non delegabile su altri server
  • 12. Interfaccia utente non eccezionale per la ricerca avanzata
  • 13. Modulo esterno per la ricerca a faccette (poco scalabile esso stesso)
  • 14. Drupal + Apache SOLR – Claudio Cicali Here comes... Solr is the popular, blazing fast open source enterprise search platform from the Apache Lucene project (da http://lucene.apache.org/solr/intro) (a onor del vero sono stati condotti anche altri esperimenti...)
  • 15. Drupal + Apache SOLR – Claudio Cicali Troppo potenza! Per quello che fa e per come lo fa, non è semplicissimo da domare Né è troppo facile capire cosa possa fare per me Né è facile capire quale sia il modo migliore di fare una certa cosa Se queste parole vi fanno venire in mente Drupal ho ottenuto il risultato sperato ;) Questo è sicuramente il punto più arduo da superare; per tutto il resto c'è il manuale
  • 16.
  • 17. un modo per RICHIEDERE informazioni
  • 18. un modo per definire una struttura sulla quale imporre delle condizioni
  • 19.
  • 20. Ottime prestazioni ( caching out-of-the-box)
  • 21. Scalabile all'infinito perché viene gestita la replicazione degli indici
  • 22. Si appoggia su tecnologie robuste e enterprise grade da anni (Lucene, Tomcat, Java)
  • 23. Supporto alla faceted search (ricerca a faccette) continua...
  • 24.
  • 25. Estensibile (vuoi che la risposta alle ricerche sia in CSV?)
  • 26. Agnostico sul tipo di documento (nodi Drupal o un catalogo di parti meccaniche). La ricerca è sui campi, non su dei blob
  • 27. Query time field & document boosting (no reindex)
  • 29. Gli indici contengono i dati serializzati (query del tipo: “cerca FORD nel TITLE e ritornami BODY, DATE e AUTHOR”)
  • 30. Drupal + Apache SOLR – Claudio Cicali Consigliato! In pratica permette di rispondere sempre “Sì” alle richieste che riguardano un sistema di ricerca. Se (gran) parte del valore della nostra applicazione o della nostra azienda sta nel sistema di ricerca, credo sia praticamente obbligatorio capire in cosa SOLR possa aiutarci. Se poi l' interfaccia con Drupal è già pronta, tanto meglio ;)
  • 31. Drupal + Apache SOLR – Claudio Cicali Zooming In... Apache SOLR Server La nostra applicazione
  • 32. Drupal + Apache SOLR – Claudio Cicali Zooming in... Apache SOLR Server HTTP POST/GET La nostra applicazione DB INDEX
  • 33. Drupal + Apache SOLR – Claudio Cicali Zooming in... HTTP POST/GET DARE e RICHIEDERE STRUTTURA SOLR Server La nostra applicazione DB INDEX schema.xml solrconfig.xml
  • 34. Drupal + Apache SOLR – Claudio Cicali La struttura dei dati Ogni documento che viene spedito a SOLR non è un blob informe di dati ma è invece composto da CAMPI, tanti quanti se ne ritengano necessari. Questi campi vengono definiti in fase di progettazione del nostro indice. È ben presente il concetto di tipo di dato (ed è possibile addirittura definirne di nuovi)
  • 35. Drupal + Apache SOLR – Claudio Cicali La struttura dei dati SOLR necessita di una definizione esplicita della struttura dei documenti che gli diamo in pasto. Questa struttura viene definita tramite il file SCHEMA.XML ... < fieldType name=&quot;integer&quot; class=&quot;solr.IntField&quot;/> <fieldType name=&quot;long&quot; class=&quot;solr.LongField&quot;/> <fieldType name=&quot;float&quot; class=&quot;solr.FloatField&quot;/> ... < field name=&quot;id&quot; type=&quot;string&quot; indexed =&quot;true&quot; stored =&quot;true&quot; required =&quot;true&quot; /> <field name=&quot;body&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;teaser&quot; type=&quot;text&quot; indexed=&quot;false&quot; stored=&quot;true&quot;/> <field name=&quot;type&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;type_name&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> <field name=&quot;path&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/> ... <uniqueKey>id</uniqueKey> <defaultSearchField>body</defaultSearchField> ...
  • 36. La struttura dei dati I campi sono analizzati/filtrati sia in ingresso (index time) che in uscita (query time) [...] <fieldType name=&quot;text&quot; class=&quot;solr.TextField&quot;> <analyzer type=&quot;index&quot;> <charFilter class=&quot;solr.MappingCharFilterFactory&quot; mapping=&quot;mapping-ISOLatin1Accent.txt&quot;/> <tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/> <filter class=&quot;solr.SynonymFilterFactory&quot; synonyms=&quot;index_synonyms.txt&quot; ignoreCase=&quot;true&quot; expand=&quot;false&quot;/> <filter class=&quot;solr.StopFilterFactory&quot; ignoreCase=&quot;true&quot; words=&quot;stopwords.txt&quot; /> <filter class=&quot;solr.LowerCaseFilterFactory&quot;/> <filter class=&quot;solr.SnowballPorterFilterFactory&quot; language=&quot;English&quot; protected=&quot;protwords.txt&quot;/> <filter class=&quot;solr.RemoveDuplicatesTokenFilterFactory&quot;/> </analyzer> <analyzer type=&quot;query&quot;> <charFilter class=&quot;solr.MappingCharFilterFactory&quot; mapping=&quot;mapping-ISOLatin1Accent.txt&quot;/> <tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/> <filter class=&quot;solr.SynonymFilterFactory&quot; synonyms=&quot;synonyms.txt&quot; ignoreCase=&quot;true&quot; expand=&quot;true&quot;/> <filter class=&quot;solr.StopFilterFactory&quot; ignoreCase=&quot;true&quot; words=&quot;stopwords.txt&quot; /> <filter class=&quot;solr.LowerCaseFilterFactory&quot;/> <filter class=&quot;solr.SnowballPorterFilterFactory&quot; language=&quot;English&quot; protected=&quot;protwords.txt&quot;/> <filter class=&quot;solr.RemoveDuplicatesTokenFilterFactory&quot;/> </analyzer> </fieldType> [...] Drupal + Apache SOLR – Claudio Cicali
  • 37. Drupal + Apache SOLR – Claudio Cicali Tutto molto bello, ma... Sebbene la definizione dello SCHEMA.XML rappresenti la parte più complessa e caratteristica della configurazione di un server SOLR, questo lavoro per quanto riguarda l'integrazione con Drupal è già fatto . Il modulo che integra Drupal con SOLR, infatti, provvede anche uno SCHEMA.XML pronto all'uso (e anche un solrconfig.xml).
  • 38. Drupal + Apache SOLR – Claudio Cicali Mettiamolo in moto... Versione corrente, SOLR 1.4, 10 novembre 2009 SOLR è una web application Java e per funzionare ha dunque bisogno di un servlet container Appena scaricato SOLR è comunque pronto all'uso: insieme a lui viene distribuito Jetty Per provarlo non è dunque necessario essere degli esperti J2EE In produzione è caldamente consigliato l'utilizzo di Tomcat
  • 39. Drupal + Apache SOLR – Claudio Cicali Una volta partito SOLR attiva due listener HTTP . Uno per le richieste applicative (ricerca e aggiornamento indici) e uno che fornisce una (orribile) interfaccia di amministrazione
  • 40. Drupal + Apache SOLR – Claudio Cicali Interfaccia di “ispezione”
  • 41. Drupal + Apache SOLR – Claudio Cicali Interfaccia di “ispezione” SOLR “full interface”
  • 42. Risposta XML Drupal + Apache SOLR – Claudio Cicali
  • 43. Drupal + Apache SOLR – Claudio Cicali Sommario dei componenti
  • 44.
  • 45. Creare un SCHEMA.XML che mappi la struttura dei nostri documenti
  • 46. Interfacciare SOLR alla nostra applicazione
  • 47. Dare in pasto a SOLR tutti i nostri documenti preesistenti
  • 49.
  • 50. Creare un SCHEMA.XML che mappi la struttura dei nostri documenti
  • 51. Interfacciare SOLR alla nostra applicazione
  • 52. Dare in pasto a SOLR tutti i nostri documenti preesistenti
  • 54. Drupal + Apache SOLR – Claudio Cicali apachesolr.module Una leeeeeeeeeeeeeeeenta gestazione... e ancora siamo alla RC3 Robert Douglass et al.
  • 55.
  • 56. Libreria “standard” PHP per il protocollo applicativo verso SOLR: SolrPhpClient, http://code.google.com/p/solr-php-client/ Alcune modifiche allo SCHEMA.XML necessitano la reindicizzazione di tutti i documenti. (eventualmente, aggiungere il file per le stopword italiane) Finché il modulo non è passato in versione RC questo è successo diverse volte :(
  • 57. Drupal + Apache SOLR – Claudio Cicali Integrazione, in due parole Tabella di sincronizzazione, apachesolr_search_node Comunicazione verso SOLR: INSERT asincrono (delegato al cron) DELETE e UPDATE sincrono (in tempo reale, via nodeapi) Esposizione di hook per la modifica dei contenuti; es: apachesolr_node_exclude
  • 58. Drupal + Apache SOLR – Claudio Cicali DEMO
  • 59. Drupal + Apache SOLR – Claudio Cicali search.module Disabilitare il cron per la ricerca “core”
  • 60. Drupal + Apache SOLR – Claudio Cicali Titolo
  • 61. Drupal + Apache SOLR – Claudio Cicali Stato dell'indicizzazione
  • 62. Drupal + Apache SOLR – Claudio Cicali Faceted search
  • 63. Drupal + Apache SOLR – Claudio Cicali Document boosting, AKA “bias”
  • 64. Drupal + Apache SOLR – Claudio Cicali
  • 65. Drupal + Apache SOLR – Claudio Cicali Field boosting
  • 66. Drupal + Apache SOLR – Claudio Cicali Inoltre... Dalla distribuzione standard del modulo si ha già l'integrazione con OG , NODEACCESS , IMAGE
  • 67. Drupal + Apache SOLR – Claudio Cicali apachesolr_attachment.module Ricerca nei file allegati Usa un altro progetto Apache: TIKA http://lucene.apache.org/tika/ «Apache Tika is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries»
  • 68. Drupal + Apache SOLR – Claudio Cicali Una delle novità di Views 3, è che per una view permette di scegliere il backend che fornisce i dati alla stessa. L'integrazione con apachesolr permette di scegliere SOLR come backend diretto. Apache SOLR + Views 3
  • 69. Drupal + Apache SOLR – Claudio Cicali Puntatori Modulo Drupal : http://drupal.org/project/ apachesolr SOLR : http://lucene.apache.org/ solr TIKA : http://lucene.apache.org/ tika NUTCH : http://lucene.apache.org/nutch/ Presentazione Video di R. Douglass http://bit.ly/cc-robsolr Articolo IBM su SOLR, parte 1: http://bit.ly/cc-ibmsolr1 Articolo IBM su SOLR, parte 2: http://bit.ly/cc-ibmsolr2 Solr + VIEWS3 : http://bit.ly/cc-solrviews3 http://bit.ly/cc-solrbook Altra presentazione online recente: http://bit.ly/cc-solrsiegfried Velocità pura? SPHINXSEARCH http://sphinxsearch.com/
  • 70. Drupal + Apache SOLR – Claudio Cicali Riferimenti Claudio Cicali [email_address] http://claudio.cicali.name http://bit.ly/cicali http://www.renomo.com
  • 71. Drupal + Apache SOLR – Claudio Cicali Licenza Creative Commons License Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ Copyright Claudio Cicali 2009