SlideShare a Scribd company logo
Manuel Toniato e Simone Caretta: Migliorare le performance di ricerca con Elasticsearch
develon /
fullycommerce
develon /
fullycommerce
Full Service Provider
develon /
fullycommerce
• Criticità della ricerca su Magento CE
• Il progetto elasticsearch
• Integrazione tra elasticsearch e Magento CE
• mapping (fields, analyzers, boost)
• infrastruttura
• query
• Renderizzazione dei risultati
• E se usassimo elasticsearch per tutti i casi di
navigazione layered?
Outline
develon /
fullycommerce
Voglio comprare un ago in
questo pagliaio
ovvero l’importanza della ricerca nell’ecommerce
develon /
fullycommerce
Perché investire sull’internal search?
• il 30% dei visitatori usa la ricerca interna
(eConsultancy, 2012)
• chi usa la ricerca è un visitatore di valore
(conversion rate più alto del 70%-80%)
• gli utenti si aspettano
strumenti avanzati di
ricerca (pertinenza, do you
mean, autocomplete,
instant search)
develon /
fullycommerce
Perché investire sull’internal search?
• grande vantaggio
competitivo
(Baymard Institute,
2014)
• i dati raccolti con la
ricerca interna
sono fondamentali
per il marketing
develon /
fullycommerce
rilevanza
performance
prossimità
La Ricerca in Magento CE
• Like
• Fulltext
• Combine (Like+Fulltext)
develon /
fullycommerce
Product or not product?
Magento indicizza e
ricerca solo i prodotti
no categorie
no pagine CMS
no altri contenuti
(wordpress, typo3, …)
develon /
fullycommerce
Il progetto elasticsearch
develon /
fullycommerce
elasticsearch
• full-text search server basato su
• utilizzato in produzione nel mercato
• supportato dalla community (licenza apache 2) e
dall’azienda omonima
develon /
fullycommerce
Caratteristiche strutturali
• distribuito, affidabile e scalabile
develon /
fullycommerce
Caratteristiche interfaccia
• restful api
• schema free
• query DSL
curl -XPUT ‘http://elastic:9200/doc_it' -d '
{
"settings": {
"number_of_shards" : 5,
"number_of_replicas" : 1,
}
}'
curl -XPUT 'http://elastic:9200/doc_it/product' -d '
{
"sku":"1775X59",
"name":"DEAN AX®",
"description":"Dean AX® è pensato per ….",
"id":"19050"
}'
curl -XGET 'http://elastic:9200/doc_it/product/_search' -d '
{
"query": {
"match" : {
"name" : "DEAN"
}
}
}'
develon /
fullycommerce
Caratteristiche tecniche
• (near) real time
• real time analytics
• optimistic version control
• per operation persistence
• interfaces: head, inquisitor,
browser
• molto altro …..
develon /
fullycommerce
elasticsearch vs Solr
• multitenancy as default
• nativamente cloud oriented
• supporto per documenti “strutturati”
• possibilità di piani di supporto business
• caratteristiche tecniche in continua evoluzione
• interesse in crescita, community in crescita
develon /
fullycommerce
Configurare elasticsearch
per l’ecommerce
develon /
fullycommerce
Mapping
• Attributi analyzed e attributi stored
• Attributi base: sku, name, description, short_description
• Attributi numerici: prezzo
• Attributi gerarchici / ordinati: categorie
• Attributi di view: lingua / store view
• Altri contenuti
• Immagini?
develon /
fullycommerce
Mapping
• quale analyzer scelgo
per i vari attributi?
• analysis = charFilter +
tokenizer + tokenFilter
{
"analysis": {
"analyzer": {
"std_stemmed_it": {
"char_filter": "html_strip",
"filter": [
"it_stop",
"lowercase",
"it_stemmer"
],
"tokenizer": "standard",
"type": "custom"
}
},
"filter": {
"it_stemmer": {
"name": "light_italian",
"type": "stemmer"
},
"it_stop": {
"name": "it_stop",
"stopwords": "_italian_",
"type": "stop"
}
}
}
}
develon /
fullycommerce
Integrare elasticsearch e
Magento
develon /
fullycommerce
Infrastruttura
• Topologia presa in esame
develon /
fullycommerce
Infrastruttura ETL
• Indicizzazione bulk utilizzando ETL/ESB
develon /
fullycommerce
Infrastruttura river
• I data-pump di elasticsearch: i River
• Indicizzazione in real-time usando
RabbitMQ river
<events>
<catalog_product_save_after>
<observers>
<fullycommerce_reindex_product>
<class>elasticsearch/observer</class>
<method>productReindex</method>
</fullycommerce_reindex_product>
</observers>
</catalog_product_save_after>
</events>
develon /
fullycommerce
Librerie PHP di connessione
$qb = new ElasticaQueryBuilder();
$query=$qb->query()
->multi_match()
->setFields(array('name^2', 'description', 'sku^3'))
->setQuery($q);
• Rest client + JSON
handling
• Elastica: approccio
Object Oriented con
query builder
develon /
fullycommerce
“Hello world”: una semplice query di ricerca
$this->_elasticaclient = new ElasticaClient(array(
'host' => 'localhost',
'port' => '9200'
));
$search = new ElasticaSearch($this->_elasticaclient);
$search->addIndex($this->_index)->addType($this->_type);
$qb = new ElasticaQueryBuilder();
$query=$qb->query()
->multi_match()
->setFields(array('name^2', 'description', 'sku^3'))
->setQuery($q);
$suggest = $qb->suggest()
->term('suggest_description', 'description')
->setText($q);
$elastic_query=new ElasticaQuery();
$elastic_query->setQuery($query)
->setSuggest(new ElasticaSuggest($suggest));
$search->setQuery($elastic_query);
$resultset=$search->search();
print_r($resultset->getResults());
if($resultset->hasSuggests()){
print_r($resultset->getSuggests());
}
develon /
fullycommerce
{
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"fuzzy_like_this": {
"fields": [
"color_en",
"color_it",
"manufacturer_en",
"manufacturer_it",
"name_en",
"name_it",
"description_en",
"description_it",
"short_description_en",
"short_description_it",
"sku",
"category_terms_en",
"category_terms_it"
],
"boost": 1,
"like_text": "(scrpe puma)",
"min_similarity": 0.7,
"prefix_length": 0,
"ignore_tf": false,
"max_query_terms": 10
}
• multi term query rewrite
• template query
• elasticsearch prevede
39 tipi di query a
fronte dei 13 tipi
previsti da Lucene.
• La nostra scelta è stata
di combinare una
ricerca esatta
(query_string)
con una ricerca fuzzy
(fuzzy_like_this),
e poi filtrare per store
Le query di elasticsearch
develon /
fullycommerce
develon /
fullycommerce
develon /
fullycommerce
develon /
fullycommerce
develon /
fullycommerce
Come mostrare i risultati
• Utilizzando le collection di Magento (filtro per
product_id)
$ids = $this->getSearchResultIds();
$this->addIdFilter($ids);
• Renderizzando direttamente gli oggetti JSON restituiti
da elasticsearch
Vantaggi: non serve arricchimento,
in automatico paginazione, ordinamento, ecc.
Svantaggi: seconda query su DB (lentezza)
Vantaggi: molto veloce
Svantaggi: necessità di indicizzare i dati necessari per il
template
paginazione e ordinamento molto complicati
Soluzione preferibile per l’autocomplete
develon /
fullycommerce
E se usassimo elasticsearch per tutti i
casi di layered navigation?
• È la soluzione
adottata dalla
maggior parte
dei moduli
• Performance
migliori?
• Fragilità della
soluzione!!!
<config>
<global>
<blocks>
<nanowebg_elasticsearch>
<class>NanoWebG_ElasticSearch_Block</class>
</nanowebg_elasticsearch>
<catalog>
<rewrite>
<layer_view>
NanoWebG_ElasticSearch_Block_Catalog_Layer_View
</layer_view>
</rewrite>
</catalog>
<catalogsearch>
<rewrite>
<layer>
NanoWebG_ElasticSearch_Block_Catalogsearch_Layer
</layer>
</rewrite>
</catalogsearch>
</blocks>
</global>
</config>
develon /
fullycommerce
Integrazioni esistenti
• moltissimi progetti nati
nell’ultimo anno
develon /
fullycommerce
L’ecosistema elasticsearch
Oltre la ricerca: ELK-stack
• logstash:
per centralizzare, elaborare e instradare i log
• kibana:
sistema di visualizzazione dati in real-time
develon /
fullycommerce
Dubbi, domande, perplessità…
develon /
fullycommerce
References (1)
Sulla ricerca interna nell’ecommerce
• Why Ecommerce Stores Can't Afford to Ignore Site Search,
di Barett Johnson, 4/11/2014, visitato il 27/2/2014
http://blog.swiftype.com/why-ecommerce-stores-cant-afford-to-ignore-site-
search
• The Current State Of E-Commerce Search,
di Christian Holst, 18/08/2014, visitato il 27/2/2014
http://www.smashingmagazine.com/2014/08/18/the-current-state-of-e-
commerce-search/
Elasticsearch
• Il nuovo sito (lanciato il 10/3/2015) :
https://www.elastic.co/
• Elastica:
http://elastica.io/
develon /
fullycommerce
References (2)
Elasticsearch e Magento
• BubbleShop Extension for Elasticsearch,
https://www.bubbleshop.net/magento-elasticsearch.html
• Qbox Elasticsearch Extension,
http://www.magentocommerce.com/magento-connect/qbox-
elasticsearch-extension.html
• Johann Reinke Extension (versione preliminare di BubbleShop)
https://github.com/jreinke/magento-elasticsearch
• Carlo Tasca Extension (non utilizza Elastica)
https://github.com/ctasca/magento-elasticsearch-module
develon /
fullycommerce
Manuel Toniato
manuel.toniato@fullycommerce.com
https://www.linkedin.com/pub/manuel-toniato/45/7a/61b
https://twitter.com/manuel_toniato
Simone Caretta
simone.caretta@develon.com
https://www.linkedin.com/pub/simone-caretta/4/90b/383
https://plus.google.com/+SimoneCaretta/posts
© 2013, Develon srl - Tutti i diritti riservati. Questo documento è protetto da copyright. Nessuna parte di esso può essere modificato, riprodotto o distribuito in qualunque forma o con qualunque mezzo, senza previa
autorizzazione scritta di Develon srl.
develon /
fullycommerce
www.develon.com - www.fullycommerce.com

More Related Content

PDF
Ricerche performanti con ElasticSearch
PPTX
Ricerche performanti con ElasticSearch sfruttando la potenza e la flessibilit...
PDF
Elk - Elasticsearch Logstash Kibana stack explained
PDF
Logstash: Progetto open per l'analisi dei log in tempo reale di architetture ...
PDF
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDB
PDF
Data grid
PDF
Infinispan codemotion - Codemotion Rome 2015
PDF
SaaS con Symfony2
Ricerche performanti con ElasticSearch
Ricerche performanti con ElasticSearch sfruttando la potenza e la flessibilit...
Elk - Elasticsearch Logstash Kibana stack explained
Logstash: Progetto open per l'analisi dei log in tempo reale di architetture ...
Advanced Database Models and Architectures: Big Data: MySQL VS MongoDB
Data grid
Infinispan codemotion - Codemotion Rome 2015
SaaS con Symfony2

What's hot (7)

PDF
MongoDB Scala Roma SpringFramework Meeting2009
PDF
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
PDF
JBoss Data Grid Tech Lab
PPTX
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
PPTX
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
PPTX
Back to Basics, webinar 4: Indicizzazione avanzata, indici testuali e geospaz...
PPTX
Back to Basics, webinar 6: Messa in esercizio
MongoDB Scala Roma SpringFramework Meeting2009
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
JBoss Data Grid Tech Lab
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Back to Basics, webinar 4: Indicizzazione avanzata, indici testuali e geospaz...
Back to Basics, webinar 6: Messa in esercizio
Ad

Viewers also liked (20)

PDF
Elasticsearch a quick introduction
PPTX
Fast data platforms - Hadoop User Group (Italy)
PPTX
Basilio Bentivegna: I principali business trends nell’eCommerce per il 2015
PPT
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
PPTX
Mauro Lorenzutti: Quale CMS per Magento?
PDF
Roberto Fumarola: Quali errori evitare nel mobile eCommerce
PDF
Networked Exponentials
PDF
Magento best practices
PPTX
Sergii Shymko: Magento 2: Composer for Extensions Distribution
PPT
Vortrag Ulrike Richter: ICONET in NRW
PDF
merck 2Q05 Earnings Release
PDF
Conflict Prevention Due Diligence Negotiation & Consensus Building Strategies...
PDF
Potipoti AW09 Cataloge
PDF
Marc Egger: Text Analytics for Brand Research -Non-reactive Concept Mapping t...
PPTX
O Intermareal
PDF
custom mobile application development
PPT
Vicente ferrer
PDF
Marketing, Publicidad y Analítica web - Master Avanzado
PPTX
Taller de fotografía con ojo de pez
PDF
Ma no-presentation-2013
Elasticsearch a quick introduction
Fast data platforms - Hadoop User Group (Italy)
Basilio Bentivegna: I principali business trends nell’eCommerce per il 2015
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Mauro Lorenzutti: Quale CMS per Magento?
Roberto Fumarola: Quali errori evitare nel mobile eCommerce
Networked Exponentials
Magento best practices
Sergii Shymko: Magento 2: Composer for Extensions Distribution
Vortrag Ulrike Richter: ICONET in NRW
merck 2Q05 Earnings Release
Conflict Prevention Due Diligence Negotiation & Consensus Building Strategies...
Potipoti AW09 Cataloge
Marc Egger: Text Analytics for Brand Research -Non-reactive Concept Mapping t...
O Intermareal
custom mobile application development
Vicente ferrer
Marketing, Publicidad y Analítica web - Master Avanzado
Taller de fotografía con ojo de pez
Ma no-presentation-2013
Ad

More from Meet Magento Italy (20)

PDF
Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...
PDF
Vinai Kopp - How i develop M2 modules
PDF
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
PDF
Muliadi jeo - How to sell online in Indonesia
PDF
Max Pronko - 10 migration mistakes from Magento 1 to Magento 2
PDF
Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...
PDF
Bodin - Hullin & Potencier - Magento Performance Profiling and Best Practices
PDF
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
PDF
Vinai Kopp - FPC Hole punching in Magento 2
PDF
Jacopo Nardiello - From CI to Prod: Running Magento at scale with Kubernetes
PDF
James Zetlen - PWA Studio Integration…With You
PDF
Talesh Seeparsan - The Hound of the Malwarevilles
PDF
Miguel Balparda - A day in support
PDF
Volodymyr Kublytskyi - Develop Product, Design Platform
PDF
Rosario Toscano - Processi di ottimizzazione per una crescita continua
PDF
Henrik Feld Jakobsen - How to sell online Scandinavia
PDF
Rabia Qureshi - How to sell online in UK
PDF
Matteo Schuerch - How to sell online in Switzerland
PDF
Il data-driven nell’e-commerce: il caso studio Alessi
PDF
Philippe Bernou - Seamless omnichannel solutions with Magento order management
Dirk Pinamonti - Come affrontare la sfida del nuovo mercato multicanale e del...
Vinai Kopp - How i develop M2 modules
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Muliadi jeo - How to sell online in Indonesia
Max Pronko - 10 migration mistakes from Magento 1 to Magento 2
Alessandro La Ciura - Progettare la migliore integrazione tra live chat ed e-...
Bodin - Hullin & Potencier - Magento Performance Profiling and Best Practices
Giulio Gargiullo - Strategie di marketing digitale per avviare l’e-commerce i...
Vinai Kopp - FPC Hole punching in Magento 2
Jacopo Nardiello - From CI to Prod: Running Magento at scale with Kubernetes
James Zetlen - PWA Studio Integration…With You
Talesh Seeparsan - The Hound of the Malwarevilles
Miguel Balparda - A day in support
Volodymyr Kublytskyi - Develop Product, Design Platform
Rosario Toscano - Processi di ottimizzazione per una crescita continua
Henrik Feld Jakobsen - How to sell online Scandinavia
Rabia Qureshi - How to sell online in UK
Matteo Schuerch - How to sell online in Switzerland
Il data-driven nell’e-commerce: il caso studio Alessi
Philippe Bernou - Seamless omnichannel solutions with Magento order management

Manuel Toniato e Simone Caretta: Migliorare le performance di ricerca con Elasticsearch

  • 4. develon / fullycommerce • Criticità della ricerca su Magento CE • Il progetto elasticsearch • Integrazione tra elasticsearch e Magento CE • mapping (fields, analyzers, boost) • infrastruttura • query • Renderizzazione dei risultati • E se usassimo elasticsearch per tutti i casi di navigazione layered? Outline
  • 5. develon / fullycommerce Voglio comprare un ago in questo pagliaio ovvero l’importanza della ricerca nell’ecommerce
  • 6. develon / fullycommerce Perché investire sull’internal search? • il 30% dei visitatori usa la ricerca interna (eConsultancy, 2012) • chi usa la ricerca è un visitatore di valore (conversion rate più alto del 70%-80%) • gli utenti si aspettano strumenti avanzati di ricerca (pertinenza, do you mean, autocomplete, instant search)
  • 7. develon / fullycommerce Perché investire sull’internal search? • grande vantaggio competitivo (Baymard Institute, 2014) • i dati raccolti con la ricerca interna sono fondamentali per il marketing
  • 8. develon / fullycommerce rilevanza performance prossimità La Ricerca in Magento CE • Like • Fulltext • Combine (Like+Fulltext)
  • 9. develon / fullycommerce Product or not product? Magento indicizza e ricerca solo i prodotti no categorie no pagine CMS no altri contenuti (wordpress, typo3, …)
  • 11. develon / fullycommerce elasticsearch • full-text search server basato su • utilizzato in produzione nel mercato • supportato dalla community (licenza apache 2) e dall’azienda omonima
  • 12. develon / fullycommerce Caratteristiche strutturali • distribuito, affidabile e scalabile
  • 13. develon / fullycommerce Caratteristiche interfaccia • restful api • schema free • query DSL curl -XPUT ‘http://elastic:9200/doc_it' -d ' { "settings": { "number_of_shards" : 5, "number_of_replicas" : 1, } }' curl -XPUT 'http://elastic:9200/doc_it/product' -d ' { "sku":"1775X59", "name":"DEAN AX®", "description":"Dean AX&reg; &egrave; pensato per ….", "id":"19050" }' curl -XGET 'http://elastic:9200/doc_it/product/_search' -d ' { "query": { "match" : { "name" : "DEAN" } } }'
  • 14. develon / fullycommerce Caratteristiche tecniche • (near) real time • real time analytics • optimistic version control • per operation persistence • interfaces: head, inquisitor, browser • molto altro …..
  • 15. develon / fullycommerce elasticsearch vs Solr • multitenancy as default • nativamente cloud oriented • supporto per documenti “strutturati” • possibilità di piani di supporto business • caratteristiche tecniche in continua evoluzione • interesse in crescita, community in crescita
  • 17. develon / fullycommerce Mapping • Attributi analyzed e attributi stored • Attributi base: sku, name, description, short_description • Attributi numerici: prezzo • Attributi gerarchici / ordinati: categorie • Attributi di view: lingua / store view • Altri contenuti • Immagini?
  • 18. develon / fullycommerce Mapping • quale analyzer scelgo per i vari attributi? • analysis = charFilter + tokenizer + tokenFilter { "analysis": { "analyzer": { "std_stemmed_it": { "char_filter": "html_strip", "filter": [ "it_stop", "lowercase", "it_stemmer" ], "tokenizer": "standard", "type": "custom" } }, "filter": { "it_stemmer": { "name": "light_italian", "type": "stemmer" }, "it_stop": { "name": "it_stop", "stopwords": "_italian_", "type": "stop" } } } }
  • 21. develon / fullycommerce Infrastruttura ETL • Indicizzazione bulk utilizzando ETL/ESB
  • 22. develon / fullycommerce Infrastruttura river • I data-pump di elasticsearch: i River • Indicizzazione in real-time usando RabbitMQ river <events> <catalog_product_save_after> <observers> <fullycommerce_reindex_product> <class>elasticsearch/observer</class> <method>productReindex</method> </fullycommerce_reindex_product> </observers> </catalog_product_save_after> </events>
  • 23. develon / fullycommerce Librerie PHP di connessione $qb = new ElasticaQueryBuilder(); $query=$qb->query() ->multi_match() ->setFields(array('name^2', 'description', 'sku^3')) ->setQuery($q); • Rest client + JSON handling • Elastica: approccio Object Oriented con query builder
  • 24. develon / fullycommerce “Hello world”: una semplice query di ricerca $this->_elasticaclient = new ElasticaClient(array( 'host' => 'localhost', 'port' => '9200' )); $search = new ElasticaSearch($this->_elasticaclient); $search->addIndex($this->_index)->addType($this->_type); $qb = new ElasticaQueryBuilder(); $query=$qb->query() ->multi_match() ->setFields(array('name^2', 'description', 'sku^3')) ->setQuery($q); $suggest = $qb->suggest() ->term('suggest_description', 'description') ->setText($q); $elastic_query=new ElasticaQuery(); $elastic_query->setQuery($query) ->setSuggest(new ElasticaSuggest($suggest)); $search->setQuery($elastic_query); $resultset=$search->search(); print_r($resultset->getResults()); if($resultset->hasSuggests()){ print_r($resultset->getSuggests()); }
  • 25. develon / fullycommerce { "query": { "filtered": { "query": { "bool": { "should": [ { "fuzzy_like_this": { "fields": [ "color_en", "color_it", "manufacturer_en", "manufacturer_it", "name_en", "name_it", "description_en", "description_it", "short_description_en", "short_description_it", "sku", "category_terms_en", "category_terms_it" ], "boost": 1, "like_text": "(scrpe puma)", "min_similarity": 0.7, "prefix_length": 0, "ignore_tf": false, "max_query_terms": 10 } • multi term query rewrite • template query • elasticsearch prevede 39 tipi di query a fronte dei 13 tipi previsti da Lucene. • La nostra scelta è stata di combinare una ricerca esatta (query_string) con una ricerca fuzzy (fuzzy_like_this), e poi filtrare per store Le query di elasticsearch
  • 30. develon / fullycommerce Come mostrare i risultati • Utilizzando le collection di Magento (filtro per product_id) $ids = $this->getSearchResultIds(); $this->addIdFilter($ids); • Renderizzando direttamente gli oggetti JSON restituiti da elasticsearch Vantaggi: non serve arricchimento, in automatico paginazione, ordinamento, ecc. Svantaggi: seconda query su DB (lentezza) Vantaggi: molto veloce Svantaggi: necessità di indicizzare i dati necessari per il template paginazione e ordinamento molto complicati Soluzione preferibile per l’autocomplete
  • 31. develon / fullycommerce E se usassimo elasticsearch per tutti i casi di layered navigation? • È la soluzione adottata dalla maggior parte dei moduli • Performance migliori? • Fragilità della soluzione!!! <config> <global> <blocks> <nanowebg_elasticsearch> <class>NanoWebG_ElasticSearch_Block</class> </nanowebg_elasticsearch> <catalog> <rewrite> <layer_view> NanoWebG_ElasticSearch_Block_Catalog_Layer_View </layer_view> </rewrite> </catalog> <catalogsearch> <rewrite> <layer> NanoWebG_ElasticSearch_Block_Catalogsearch_Layer </layer> </rewrite> </catalogsearch> </blocks> </global> </config>
  • 32. develon / fullycommerce Integrazioni esistenti • moltissimi progetti nati nell’ultimo anno
  • 33. develon / fullycommerce L’ecosistema elasticsearch Oltre la ricerca: ELK-stack • logstash: per centralizzare, elaborare e instradare i log • kibana: sistema di visualizzazione dati in real-time
  • 35. develon / fullycommerce References (1) Sulla ricerca interna nell’ecommerce • Why Ecommerce Stores Can't Afford to Ignore Site Search, di Barett Johnson, 4/11/2014, visitato il 27/2/2014 http://blog.swiftype.com/why-ecommerce-stores-cant-afford-to-ignore-site- search • The Current State Of E-Commerce Search, di Christian Holst, 18/08/2014, visitato il 27/2/2014 http://www.smashingmagazine.com/2014/08/18/the-current-state-of-e- commerce-search/ Elasticsearch • Il nuovo sito (lanciato il 10/3/2015) : https://www.elastic.co/ • Elastica: http://elastica.io/
  • 36. develon / fullycommerce References (2) Elasticsearch e Magento • BubbleShop Extension for Elasticsearch, https://www.bubbleshop.net/magento-elasticsearch.html • Qbox Elasticsearch Extension, http://www.magentocommerce.com/magento-connect/qbox- elasticsearch-extension.html • Johann Reinke Extension (versione preliminare di BubbleShop) https://github.com/jreinke/magento-elasticsearch • Carlo Tasca Extension (non utilizza Elastica) https://github.com/ctasca/magento-elasticsearch-module
  • 37. develon / fullycommerce Manuel Toniato [email protected] https://www.linkedin.com/pub/manuel-toniato/45/7a/61b https://twitter.com/manuel_toniato Simone Caretta [email protected] https://www.linkedin.com/pub/simone-caretta/4/90b/383 https://plus.google.com/+SimoneCaretta/posts
  • 38. © 2013, Develon srl - Tutti i diritti riservati. Questo documento è protetto da copyright. Nessuna parte di esso può essere modificato, riprodotto o distribuito in qualunque forma o con qualunque mezzo, senza previa autorizzazione scritta di Develon srl. develon / fullycommerce www.develon.com - www.fullycommerce.com