Un'introduzione ai motori di ricerca nativi di TYPO3 e presentazione dei loro limiti. Presentazione di Apache Solr e delle modalità di integrazione in TYPO3
1. Milano 14/15 Marzo 2014
Ricerche evolute
mediante Apache Solr
Mauro Lorenzutti
T3Camp Italia
Il quarto evento italiano dedicato a TYPO3
2. Mauro Lorenzutti
CTO di Webformat
Sviluppatore e consulente TYPO3 dal 2004
TYPO3 Certified Integrator dal 2009
Sviluppatore di numerose estensioni, tra cui:
DB Integration (wfqbe)
Webformat Shop System (extendedshop)
TYPO3-Alfresco Connector
TYPO3-Magento Connector
Speaker in varie conferenze:
T3DD07
T3CON07
T3CON09US
Pag. 2Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
T3CON13DE
MageDay
4 x T3CampItalia ;-)
3. Di cosa parleremo
La ricerca integrata di TYPO3
Indexed Search Engine
Introduzione ad Apache Solr
Integrare Solr in TYPO3
Pag. 3Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
6. La ricerca nei siti
Molto spesso trascurata e sottovalutata
Ma…
Se ho un database con >100k eventi?
Se ho un catalogo con 20k prodotti strutturato in
categorie e con caratteristiche sulla base delle quali
vorrei che gli utenti potessero filtrare i prodotti?
…
Pag. 6Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
7. La ricerca standard di TYPO3
Pag. 7Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
11. Le funzionalità della ricerca standard
Consente all’utente di scegliere se cercare nelle keyword
della pagina o nel contenuto
Consente di configurare più tabelle via typoscript
Output configurabile via typoscript
La ricerca si basa sul operatore “LIKE %...%”
Pag. 11Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
12. Pro & Contro della ricerca standard
Pag. 12Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
+ Integrata
+ Facile da configurare
- Funzionalità di base
- Cerca solo nel database
- LIKE %...%
18. Le funzionalità della ricerca standard
Consente di indicizzare pagine, record nel database,
documenti, immagini, url esterni, ecc.
Costruisce un indice di parole chiave per ciascun
contenuto ed esegue la ricerca su questo
Fornisce una percentuale di pertinenza del risultato
I contenuti vengono indicizzati contestualmente alla prima
visualizzazione
È disponibile un crawler per indicizzare massivamente il
sito
Pag. 18Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
19.
20.
21. Pro & Contro di Indexed search engine
Pag. 21Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
+ Integrata
+ Indicizza pagine, record, file, url, …
+ Ordinamento per rilevanza
+ Statistiche di ricerca
+ Molte estensioni disponibili
- Configurazione non immediata
- Può rallentare la navigazione
- Solo le pagine in cache vengono
indicizzate
- Indice salvato nel db (problemi di
prestazioni)
23. Apache Solr?
• SolrTM is the popular, blazing fast open source enterprise
search platform from the Apache LuceneTM project. Its major
features include powerful full-text search, hit highlighting,
faceted search, near real-time indexing, dynamic clustering,
database integration, rich document (e.g., Word, PDF)
handling, and geospatial search. Solr is highly reliable,
scalable and fault tolerant, providing distributed indexing,
replication and load-balanced querying, automated failover
and recovery, centralized configuration and more. Solr powers
the search and navigation features of many of the world's
largest internet sites.
https://lucene.apache.org/solr/
Pag. 23Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
25. Ma cos’è Apache Solr?
Solr è un “enterprise search server”
Espone delle API REST per l’interazione
Vi si possono caricare documenti (ovvero qualsiasi tipo di
contenuto) via XML, JSON e CSV tramite chiamate HTTP
Si possono cercare e scaricare documenti in formato XML,
JSON e CSV tramite chiamate HTTP
Un database NoSQL?
Pag. 25Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
26. Funzionalità principali
Ricerche Full-text
Faceted navigation
Spellchecking: “Did you mean…”
Raccomandazioni: “More like this”
Indicizzazione di documenti (PDF, DOC, ecc.)
Gestione dei sinonimi e delle stopword
Ricerche geospaziali
Ottimizzato per elevato traffico e mole di dati
Estendibile mediante plugin
Pag. 26Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
27. Schemaless
Permette di definire dinamicamente i campi che descrivono
il documento
Pag. 27Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
29. Come integrarlo in TYPO3?
Due possibilità:
Apache Solr for TYPO3 (ext: solr)
DIY (ext: arrangiati)
Pag. 29Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
30. Apache Solr for TYPO3
Pag. 30Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
31. DIY
Sono disponibili diversi client PHP, ad es.:
http://www.solarium-project.org/
https://code.google.com/p/solr-php-client/
Due soluzioni “quick and dirty”:
cURL
file_get_contents()
Pag. 31Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
32. DIY
Costruiamo un esempio
molto semplice
Indicizziamo le news del
nostro sito
Implementiamo una
funzionalità di ricerca
Costruiamo dei filtri a
faccette
Pag. 32Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
48. Pro & Contro di Apache Solr
Pag. 48Mauro Lorenzutti: Ricerche evolute mediante Apache Solr
+ Tante tante tante tante funzionalità!
+ Adatto a gestire elevati volumi di dati
+ Molto veloce
- Non integrato in TYPO3
- Impegnativo da configurare
- Richiede Java
- C’è molto da studiare…
- Può creare dipendenza