SlideShare a Scribd company logo
Magento + Apache Solr:
perché e come
About me
●

Gennaro Vietri

●

CTO / co-founder di BitBull

●

Zend Certified Engineer

●

Circa 5 anni di esperienza con Magento
@kesonno
+GennaroVietri
Cos'è Solr
●

http://lucene.apache.org/solr/

●

Progetto Apache Foundation

●

Scritto in Java e basato su Lucene

●

API REST XML e JSON

●

Completa console di gestione web based

●

Architettura modulare basata su plugin
Un po' di storia
●

Creato nel 2004 da Yonik Seeley presso CNET Networks

●

Diventa nel 2006 un progetto dell'Apache Software Foundation

●

Nel 2010 lo sviluppo viene allineato a quello di Lucene

Chi lo usa
●

eBay Classified Germany

●

AOL

●

Digg

●

The Guardian

●

Reddit

●

CNET

●

Instagram

●

Sourceforge

●

NASA

●

molti altri...
Caratteristiche
●

Ricerca fulltext

●

Faceted navigation

●

Raccomandazioni ("More like this")

●

Spell checking

●

Search suggest / Autocomplete

●

Possibilità di indicizzare documenti complessi (PDF, Word)

●

Ricerca geospaziale

●

Scalabile e distribuito, con clustering dinamico e replica degli indici

●

Schemaless (grazie ai dynamic fields)
Perché usare Solr con Magento?
●

Risultati di ricerca più rilevanti (serchandising)
–
–

Supporto per sinonimi e stopwords

–

Phonetic Matching

–
●

Possibilità di dare pesi diversi agli attributi

Fallback in caso di mispelling o zero risultati

Performance
–

E' veloce!

–

La layered navigation è built-in (facet)
Cosa possiamo sostituire?
●

Ricerca libera

●

Ricerca avanzata

●

Navigazione del catalogo

●

Layered navigation

●

Autocomplete
Soluzioni disponibili
●

http://solrgento.de

●

http://www.solrbridge.com

●

Magento Enterprise 1.8+

●

https://github.com/magentix/Solr

●

Solr4Mage (?)

●

DIY!
DIY
●

Estensione PECL ( http://pecl.php.net/package/solr )
–
–

Veloce (è in C)

–
●

Inspirata a SolrJ, la libreria "ufficiale"
Non abbonda in documentazione

Solr-php-client ( https://code.google.com/p/solr-php-client/ )
–
–

●

Semplice e "snella"
Poco performante (supporta solo wt=json)

Solarium ( http://www.solarium-project.org )
–
–

●

Potente e configurabile
Architettura a plugin

file_get_contents + eval / unserialize / json_decode
Indexing
●

POST documenti xml / json

●

DataImport JDBC ( http://wiki.apache.org/solr/DataImportHandler )
–

SELECT * FROM catalog_product_flat_1 ...

–

http://localhost:8983/solr/dataimport
Recuperare i dati
●

Solo product_id
–
–

Poco performante (il resto dei dati lo recupera
Magento)

–

●

Poco invasivo

Ha poco senso per la navigazione del catalogo

Tutti i dati del prodotto
–

Sposta tutto il carico su Solr → veloce!

–

Bisogna sostituire un bel po' di pezzi
Brainstorming...
●

Ambiente di staging (http://wiki.apache.org/solr/SolrReplication)

●

Indicizzazione di pagine CMS e altri contenuti

●

"Prodotti in evidenza"

●

●

Ricerca geospaziale → disponibilità in negozi
fisici
...
Domande?
Grazie!

More Related Content

Similar to Magento Day 2013 - Integrazione tra Magento e Solr

Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Luca Zulian
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 
Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
Marco Breveglieri
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
Qabiria
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloadedPietro Libro
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
Andrea Cardinali
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
Fabrizio Bernabei
 
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Giorgio Di Nardo
 
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA ItalySMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
Paolo Dadda
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
Nicolò Carandini
 
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
Paolo Dadda
 
Html5
Html5Html5
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
DrupalDay
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
Roberto Cappelletti
 
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
Codemotion
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
Andrea Dottor
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Antonio Gallo
 

Similar to Magento Day 2013 - Integrazione tra Magento e Solr (20)

Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
Costruire applicazioni-cross-platform-con-xamarin-visual-studio-2013
 
Web 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggiWeb 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggi
 
Salvo
SalvoSalvo
Salvo
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
 
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA ItalySMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
 
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
 
Html5
Html5Html5
Html5
 
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
 

Magento Day 2013 - Integrazione tra Magento e Solr

  • 1. Magento + Apache Solr: perché e come
  • 2. About me ● Gennaro Vietri ● CTO / co-founder di BitBull ● Zend Certified Engineer ● Circa 5 anni di esperienza con Magento @kesonno +GennaroVietri
  • 3. Cos'è Solr ● http://lucene.apache.org/solr/ ● Progetto Apache Foundation ● Scritto in Java e basato su Lucene ● API REST XML e JSON ● Completa console di gestione web based ● Architettura modulare basata su plugin
  • 4. Un po' di storia ● Creato nel 2004 da Yonik Seeley presso CNET Networks ● Diventa nel 2006 un progetto dell'Apache Software Foundation ● Nel 2010 lo sviluppo viene allineato a quello di Lucene Chi lo usa ● eBay Classified Germany ● AOL ● Digg ● The Guardian ● Reddit ● CNET ● Instagram ● Sourceforge ● NASA ● molti altri...
  • 5. Caratteristiche ● Ricerca fulltext ● Faceted navigation ● Raccomandazioni ("More like this") ● Spell checking ● Search suggest / Autocomplete ● Possibilità di indicizzare documenti complessi (PDF, Word) ● Ricerca geospaziale ● Scalabile e distribuito, con clustering dinamico e replica degli indici ● Schemaless (grazie ai dynamic fields)
  • 6. Perché usare Solr con Magento? ● Risultati di ricerca più rilevanti (serchandising) – – Supporto per sinonimi e stopwords – Phonetic Matching – ● Possibilità di dare pesi diversi agli attributi Fallback in caso di mispelling o zero risultati Performance – E' veloce! – La layered navigation è built-in (facet)
  • 7. Cosa possiamo sostituire? ● Ricerca libera ● Ricerca avanzata ● Navigazione del catalogo ● Layered navigation ● Autocomplete
  • 8. Soluzioni disponibili ● http://solrgento.de ● http://www.solrbridge.com ● Magento Enterprise 1.8+ ● https://github.com/magentix/Solr ● Solr4Mage (?) ● DIY!
  • 9. DIY ● Estensione PECL ( http://pecl.php.net/package/solr ) – – Veloce (è in C) – ● Inspirata a SolrJ, la libreria "ufficiale" Non abbonda in documentazione Solr-php-client ( https://code.google.com/p/solr-php-client/ ) – – ● Semplice e "snella" Poco performante (supporta solo wt=json) Solarium ( http://www.solarium-project.org ) – – ● Potente e configurabile Architettura a plugin file_get_contents + eval / unserialize / json_decode
  • 10. Indexing ● POST documenti xml / json ● DataImport JDBC ( http://wiki.apache.org/solr/DataImportHandler ) – SELECT * FROM catalog_product_flat_1 ... – http://localhost:8983/solr/dataimport
  • 11. Recuperare i dati ● Solo product_id – – Poco performante (il resto dei dati lo recupera Magento) – ● Poco invasivo Ha poco senso per la navigazione del catalogo Tutti i dati del prodotto – Sposta tutto il carico su Solr → veloce! – Bisogna sostituire un bel po' di pezzi
  • 12. Brainstorming... ● Ambiente di staging (http://wiki.apache.org/solr/SolrReplication) ● Indicizzazione di pagine CMS e altri contenuti ● "Prodotti in evidenza" ● ● Ricerca geospaziale → disponibilità in negozi fisici ...