SlideShare a Scribd company logo
Making your Drupal fly with Apache SOLR ,[object Object],[object Object]
We deliver business-driven web services that enable our customers to conduct better business on the Internet We base our work to our customers’ strategy and needs
About me, Kalle Virta Software architect and developer High performance and complex integrations Almost 10 years in the business Seen Drupal from version 3 A lot of big Drupal sites / systems under by belt
Your regular stack MySQL server Linux + Apache
Damn, dude your MySQL server FIRE is on
New guys to  the rescue
Apache SOLR memcached Varnish
Your enhanced stack mem-cached MySQL server Linux + Apache Varnish Apache SOLR Did you notice? It’s still blue.
The new guys Varnish is a http cache and does it well – but it doesn’t help at all on your customized-for-every-person social media site Memcached is a good idea, and you can even use it with cache router to cache Drupal stuff, including your own modules, but… it still just caches stuff SOLR however, is a different story…
SOLR Apache SOLR is a search server around Lucene (which is a search library) written in Java It needs a Java container, e.g. Jetty or Tomcat In a simple way, you can save your stuff in XML form in it and then search from them SOLR will tokenize and do all kinds of (configurable) magic to the data when indexing it, but it can also store the original data (not always possible with search indexers)
SOLR for searching Obviously all the features of SOLR make it optimal for sitewide searching functionality You can actually find stuff with SOLR, all the fields in the search can be biased, that is, you can tune the fields in which the hits make the score go higher SOLR also does one really neat thing for searching…
? Ever heard of a  faceted      SearCH
The old advanced search Search mouse Product category Product sub-cat Manufacturer Price range - Search Too many search results (794), narrow your search and try again
The faceted search Order by price Logitech LS1 Laser Mouse Current search 29 € A cheap laser mouse that’ll get you through even the most problematic of PowerPoint presentations. mouse Sub-category Logitech G3 Gaming Mouse wireless mice (296) wired mice (96) laser mice (163) 59 € A great laser mouse with more buttons than you’ll ever have time to configure. A steal. Show all Microsoft Super Mouse Manufacturer 49 € Logitech(194) Microsoft (36) HP (3) A great mouse from the company that brought you the best product of all times, Windows Me. Show all Apple Mighty Mouse 129 € Price range The mouse the image happens to be of. Never tried it. Looks pretty nice, though. 0-50 € (384) 50-100 € (129) 100-300 € (50) page 1 2 3 4 5 6 7 8 9 10
SOLR for faceted searching Apache SOLR let’s you facet search results – that is, to show possible search filters and give counts for them Faceting with SOLR can also be achieved in Drupal – and now a Drupal contrib module comes to play With ApacheSOLR –module (http://drupal.org/project/apachesolr) you can do all this with a couple of clicks in your Drupal installation
SOLRfy your Drupal search 1/3 Download SOLR package from http://www.apache.org/dyn/closer.cgi/lucene/solr/ Unpackage it and check your server’s firewall settings to allow traffic to port 8983 Check that you have Java (RE) installed
SOLRfy your Drupal search 2/3 Then get Drupal’s “apachesolr” module, there’s two xml files in the package, solrconfig.xml and schema.xml Go back to your SOLR directory, rename example directory to “drupal” so you’ll find it easier Drop the two xml files to that drupal/solr/conf –directory Go to that drupal directory and fire up Apache SOLR with “java –jar start.jar”
SOLRfy your Drupal search 3/3 Now you can turn on “apachesolr” module in Drupal Tune the SOLR server settings in Drupal, reindex all content and then start clicking on those filtering/faceting settings on apachesolr You’ll have to turn the facets on as blocks But your search experience will be something else entirely …and once you see how searching with SOLR works, you’re not going back
Apachesolr -module Automatically creates facets for taxonomy terms, for every vocabulary – you can just turn them on Automatically creates facets for CCK fields using dropdown/radio widgets (i.e. with a set of options) Exposes hooks for CCK fields (to make facets out of them) Exposes hook for altering the query (to some extent) Easy to use
Faceting without SOLR You can do faceting without SOLR too “Faceted search” module will do it for you But at only 10K nodes, SOLR is three times as fast With 100K+ nodes, faceted search without SOLR is practically unusable …but for small sites, SOLR is not necessary for faceting
SEARCH So you can with SOLR …but my site does A LOT more
SOLRify the rest of your Drupal universe You probably know your performance problems on your site If it’s somehow personalized, you usually can’t do anything about it with caching How about using SOLR for it? Apache Solr Views –module (at a very mature “dev” state ;) and Views 3 (dev too) will talk together and integrate to apachesolr –module and it’s SOLR index When this is stable and fully functional…
It’ll make your Views FLY
SELECT  	title,  	description,  	mediatype FROM media LEFT JOIN  	media_types ON 	media_type_id = type_id LEFT JOIN 	media_tag ON 	media_tag.mid = media.id WHERE 	name LIKE ‘%s’ OR 	description LIKE ‘%s’ OR media.id  IN (SELECT mid FROM promoted_media) But my problems are in my  custom modules
Custom modules Custom modules can be designed with ApacheSOLR in mind When you realize all the potential there is in a indexer that can index XML files, sky is the limit Whenever you have a data structure that’s too complex for MySQL to search from – and that’s not too rarely – you might benefit from indexing that data to SOLR and using your SOLR as the read-only “db”
Custom modules – making SOLR do the reading media_workflow media_tag A single “row” for SOLR to index media media_revision tag media_version files
Custom modules – making SOLR do the reading You know you need a better structure when you can’t circumvent running LEFT JOIN or subqueries – and running them gets too slow When you’ve optimized your code several times and restructuring your database would mean creating a read-optimized cache of everything Then SOLR might be just the thing to get you through
Custom modules – making SOLR do the reading MySQL server Write Index Apache SOLR Read
Libraries to use with custom modules Apachesolr –module uses a SOLR library written in PHP and licensed in New BSD (http://code.google.com/p/solr-php-client/) There’s also a PECL extension, but I’m not aware of any speed comparisons There are also contrib Drupal modules that give you an API for accessing SOLR
magic It’s no bullet
Not a magic bullet 1/2 Apache SOLR is a hassle with all the java containers and such, you’ll probably have to run it on a separate server You should always run stuff through Drupal or a script that will authenticate and authorize calls to SOLR (SOLR shouldn’t be exposed, unless all the data is public) Sometimes the extra server might be better to use on an extra MySQL node Sometimes you can just fix your stuff and make it as fast as it would be on Apache SOLR
Not a magic bullet 2/2 And then there’s the fact SOLR is build mainly for the English language So make sure SOLR will do what you want for you in the language you want it to do it in
Recap SOLR will right now give your Drupal site a fast, faceted search with really easy setup (thanks to apachesolr module) SOLR will soon give a boost to the performance and search abilities of your views SOLR will right now give you a lot of more power for searching from your custom databases and complicated content types, if used by a module developer It’s still not a magic bullet – it has it’s downsides
Sounds  easy? Been there,  done that? is recruiting Send your CV to jobs@exove.com
Thank you for your time Questions? If you’d rather ask me in private, drop a mail to kalle@exove.com
Making your Drupal fly with Apache SOLR

More Related Content

What's hot

Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Jim Birch
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
Vibrant Technologies & Computers
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practices
markparolisi
 
WordPress Child Themes
WordPress Child ThemesWordPress Child Themes
WordPress Child Themesrfair404
 
Doing Things the WordPress Way
Doing Things the WordPress WayDoing Things the WordPress Way
Doing Things the WordPress Way
Matt Wiebe
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Developmentjcarrig
 
Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.ALATechSource
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
Chandra Prakash Thapa
 
The Future Of WordPress Presentation
The Future Of WordPress PresentationThe Future Of WordPress Presentation
The Future Of WordPress Presentation
Dougal Campbell
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
Josh Lee
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
Anne Tomasevich
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1Yoav Farhi
 
Top 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies makeTop 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies make
Iztok Smolic
 
Creating Drupal A Module
Creating Drupal A ModuleCreating Drupal A Module
Creating Drupal A Modulearcaneadam
 
Child Themes in WordPress
Child Themes in WordPressChild Themes in WordPress
Child Themes in WordPress
Jeff Cohan
 
Top 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal projectTop 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal project
Iztok Smolic
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal Camp
Dipen Chaudhary
 
What is (not) WordPress
What is (not) WordPressWhat is (not) WordPress
What is (not) WordPress
Nikolay Bachiyski
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to Drupal
Rod Martin
 

What's hot (20)

Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practices
 
Drupal Multi-site for Fun and Profit
Drupal Multi-site for Fun and ProfitDrupal Multi-site for Fun and Profit
Drupal Multi-site for Fun and Profit
 
WordPress Child Themes
WordPress Child ThemesWordPress Child Themes
WordPress Child Themes
 
Doing Things the WordPress Way
Doing Things the WordPress WayDoing Things the WordPress Way
Doing Things the WordPress Way
 
5 Important Tools for Drupal Development
5 Important Tools for Drupal Development5 Important Tools for Drupal Development
5 Important Tools for Drupal Development
 
Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.Slavin-Dodson Piece, With Code.
Slavin-Dodson Piece, With Code.
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
 
The Future Of WordPress Presentation
The Future Of WordPress PresentationThe Future Of WordPress Presentation
The Future Of WordPress Presentation
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
 
Top 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies makeTop 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies make
 
Creating Drupal A Module
Creating Drupal A ModuleCreating Drupal A Module
Creating Drupal A Module
 
Child Themes in WordPress
Child Themes in WordPressChild Themes in WordPress
Child Themes in WordPress
 
Top 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal projectTop 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal project
 
Architecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal CampArchitecture of Drupal - Drupal Camp
Architecture of Drupal - Drupal Camp
 
What is (not) WordPress
What is (not) WordPressWhat is (not) WordPress
What is (not) WordPress
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to Drupal
 

Viewers also liked

Cannes Lions: первые впечатления и умозаключения
Cannes Lions: первые впечатления и умозаключенияCannes Lions: первые впечатления и умозаключения
Cannes Lions: первые впечатления и умозаключения
The International Association of Marketing Initiatives (IAMI)
 
Partes de la compu por renaaa
Partes de la compu por renaaaPartes de la compu por renaaa
Partes de la compu por renaaa
Lechuga95
 
Vacaciones de invierno
Vacaciones de inviernoVacaciones de invierno
Vacaciones de invierno
Lechuga95
 
ComexInfoco - Práticas e Estratégias de Sucesso na Exportação
ComexInfoco - Práticas e Estratégias de Sucesso na ExportaçãoComexInfoco - Práticas e Estratégias de Sucesso na Exportação
ComexInfoco - Práticas e Estratégias de Sucesso na Exportação
ABRACOMEX
 
賭石
賭石賭石
賭石
neo423
 
Medios Publicitarios Tradicionales
Medios Publicitarios Tradicionales Medios Publicitarios Tradicionales
Medios Publicitarios Tradicionales
MariaFernandaOliva
 
Stars
StarsStars
Stars
jbrown9010
 
Renata presentacion power point
Renata presentacion power pointRenata presentacion power point
Renata presentacion power point
Lechuga95
 
Getting to Know: Bruce Gillmer
Getting to Know: Bruce GillmerGetting to Know: Bruce Gillmer
Getting to Know: Bruce Gillmer
Bruce Gillmer
 
обучение как преимущество
обучение как преимуществообучение как преимущество
обучение как преимущество
Oxana Kukharchk
 
How Mobile drives Indonesian to do shopping discovery and price comparison
How Mobile drives Indonesian to do shopping discovery and price comparisonHow Mobile drives Indonesian to do shopping discovery and price comparison
How Mobile drives Indonesian to do shopping discovery and price comparison
Thanawat Malabuppha
 
Seualidad responsable
Seualidad responsableSeualidad responsable
Seualidad responsable
mariananaj
 
moForte - Introduction 05_03_2016
moForte  - Introduction 05_03_2016moForte  - Introduction 05_03_2016
moForte - Introduction 05_03_2016gpscc
 

Viewers also liked (15)

Cannes Lions: первые впечатления и умозаключения
Cannes Lions: первые впечатления и умозаключенияCannes Lions: первые впечатления и умозаключения
Cannes Lions: первые впечатления и умозаключения
 
Partes de la compu por renaaa
Partes de la compu por renaaaPartes de la compu por renaaa
Partes de la compu por renaaa
 
Sandeep_Pawar_CV
Sandeep_Pawar_CVSandeep_Pawar_CV
Sandeep_Pawar_CV
 
Vacaciones de invierno
Vacaciones de inviernoVacaciones de invierno
Vacaciones de invierno
 
ComexInfoco - Práticas e Estratégias de Sucesso na Exportação
ComexInfoco - Práticas e Estratégias de Sucesso na ExportaçãoComexInfoco - Práticas e Estratégias de Sucesso na Exportação
ComexInfoco - Práticas e Estratégias de Sucesso na Exportação
 
賭石
賭石賭石
賭石
 
4
44
4
 
Medios Publicitarios Tradicionales
Medios Publicitarios Tradicionales Medios Publicitarios Tradicionales
Medios Publicitarios Tradicionales
 
Stars
StarsStars
Stars
 
Renata presentacion power point
Renata presentacion power pointRenata presentacion power point
Renata presentacion power point
 
Getting to Know: Bruce Gillmer
Getting to Know: Bruce GillmerGetting to Know: Bruce Gillmer
Getting to Know: Bruce Gillmer
 
обучение как преимущество
обучение как преимуществообучение как преимущество
обучение как преимущество
 
How Mobile drives Indonesian to do shopping discovery and price comparison
How Mobile drives Indonesian to do shopping discovery and price comparisonHow Mobile drives Indonesian to do shopping discovery and price comparison
How Mobile drives Indonesian to do shopping discovery and price comparison
 
Seualidad responsable
Seualidad responsableSeualidad responsable
Seualidad responsable
 
moForte - Introduction 05_03_2016
moForte  - Introduction 05_03_2016moForte  - Introduction 05_03_2016
moForte - Introduction 05_03_2016
 

Similar to Making your Drupal fly with Apache SOLR

Dev8d Apache Solr Tutorial
Dev8d Apache Solr TutorialDev8d Apache Solr Tutorial
Dev8d Apache Solr TutorialSourcesense
 
New-Age Search through Apache Solr
New-Age Search through Apache SolrNew-Age Search through Apache Solr
New-Age Search through Apache Solr
Edureka!
 
Solr 8 interview
Solr 8 interview Solr 8 interview
Solr 8 interview
Alihossein shahabi
 
Enterprise search in_drupal_pub
Enterprise search in_drupal_pubEnterprise search in_drupal_pub
Enterprise search in_drupal_pubdstuartnz
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
nyccamp
 
Drupal & Apache Solr
Drupal & Apache SolrDrupal & Apache Solr
Drupal & Apache Solr
Andrei Savu
 
New-Age Search through Apache Solr
New-Age Search through Apache SolrNew-Age Search through Apache Solr
New-Age Search through Apache Solr
Edureka!
 
Drupal
DrupalDrupal
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrLucidworks (Archived)
 
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with Solr
Lucidworks (Archived)
 
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with Solr
Lucidworks (Archived)
 
Apache Solr! Enterprise Search Solutions at your Fingertips!
Apache Solr! Enterprise Search Solutions at your Fingertips!Apache Solr! Enterprise Search Solutions at your Fingertips!
Apache Solr! Enterprise Search Solutions at your Fingertips!
Murshed Ahmmad Khan
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
David Keener
 
Solr中国8月4日答疑交流v2
Solr中国8月4日答疑交流v2Solr中国8月4日答疑交流v2
Solr中国8月4日答疑交流v2longkeyy
 
Small wins in a small time with Apache Solr
Small wins in a small time with Apache SolrSmall wins in a small time with Apache Solr
Small wins in a small time with Apache Solr
Sourcesense
 
The First Class Integration of Solr with Hadoop
The First Class Integration of Solr with HadoopThe First Class Integration of Solr with Hadoop
The First Class Integration of Solr with Hadoop
lucenerevolution
 
Ramp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache SolrRamp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache Solr
lucenerevolution
 
Language support in searching Drupal with SOLR - Drupalcamp London 2013
Language support in searching Drupal with SOLR - Drupalcamp London 2013Language support in searching Drupal with SOLR - Drupalcamp London 2013
Language support in searching Drupal with SOLR - Drupalcamp London 2013
Exove
 
Solr
SolrSolr

Similar to Making your Drupal fly with Apache SOLR (20)

Searchlight
SearchlightSearchlight
Searchlight
 
Dev8d Apache Solr Tutorial
Dev8d Apache Solr TutorialDev8d Apache Solr Tutorial
Dev8d Apache Solr Tutorial
 
New-Age Search through Apache Solr
New-Age Search through Apache SolrNew-Age Search through Apache Solr
New-Age Search through Apache Solr
 
Solr 8 interview
Solr 8 interview Solr 8 interview
Solr 8 interview
 
Enterprise search in_drupal_pub
Enterprise search in_drupal_pubEnterprise search in_drupal_pub
Enterprise search in_drupal_pub
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
 
Drupal & Apache Solr
Drupal & Apache SolrDrupal & Apache Solr
Drupal & Apache Solr
 
New-Age Search through Apache Solr
New-Age Search through Apache SolrNew-Age Search through Apache Solr
New-Age Search through Apache Solr
 
Drupal
DrupalDrupal
Drupal
 
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with Solr
 
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with Solr
 
Indexing Text and HTML Files with Solr
Indexing Text and HTML Files with SolrIndexing Text and HTML Files with Solr
Indexing Text and HTML Files with Solr
 
Apache Solr! Enterprise Search Solutions at your Fingertips!
Apache Solr! Enterprise Search Solutions at your Fingertips!Apache Solr! Enterprise Search Solutions at your Fingertips!
Apache Solr! Enterprise Search Solutions at your Fingertips!
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
 
Solr中国8月4日答疑交流v2
Solr中国8月4日答疑交流v2Solr中国8月4日答疑交流v2
Solr中国8月4日答疑交流v2
 
Small wins in a small time with Apache Solr
Small wins in a small time with Apache SolrSmall wins in a small time with Apache Solr
Small wins in a small time with Apache Solr
 
The First Class Integration of Solr with Hadoop
The First Class Integration of Solr with HadoopThe First Class Integration of Solr with Hadoop
The First Class Integration of Solr with Hadoop
 
Ramp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache SolrRamp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache Solr
 
Language support in searching Drupal with SOLR - Drupalcamp London 2013
Language support in searching Drupal with SOLR - Drupalcamp London 2013Language support in searching Drupal with SOLR - Drupalcamp London 2013
Language support in searching Drupal with SOLR - Drupalcamp London 2013
 
Solr
SolrSolr
Solr
 

More from Exove

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
Exove
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
Exove
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
Exove
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
Exove
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Exove
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
Exove
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
Exove
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
Exove
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
Exove
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
Exove
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
Exove
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
Exove
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
Exove
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Exove
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
Exove
 

More from Exove (20)

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

Making your Drupal fly with Apache SOLR

  • 1.
  • 2.
  • 3. We deliver business-driven web services that enable our customers to conduct better business on the Internet We base our work to our customers’ strategy and needs
  • 4.
  • 5. About me, Kalle Virta Software architect and developer High performance and complex integrations Almost 10 years in the business Seen Drupal from version 3 A lot of big Drupal sites / systems under by belt
  • 6. Your regular stack MySQL server Linux + Apache
  • 7. Damn, dude your MySQL server FIRE is on
  • 8. New guys to the rescue
  • 10. Your enhanced stack mem-cached MySQL server Linux + Apache Varnish Apache SOLR Did you notice? It’s still blue.
  • 11. The new guys Varnish is a http cache and does it well – but it doesn’t help at all on your customized-for-every-person social media site Memcached is a good idea, and you can even use it with cache router to cache Drupal stuff, including your own modules, but… it still just caches stuff SOLR however, is a different story…
  • 12. SOLR Apache SOLR is a search server around Lucene (which is a search library) written in Java It needs a Java container, e.g. Jetty or Tomcat In a simple way, you can save your stuff in XML form in it and then search from them SOLR will tokenize and do all kinds of (configurable) magic to the data when indexing it, but it can also store the original data (not always possible with search indexers)
  • 13. SOLR for searching Obviously all the features of SOLR make it optimal for sitewide searching functionality You can actually find stuff with SOLR, all the fields in the search can be biased, that is, you can tune the fields in which the hits make the score go higher SOLR also does one really neat thing for searching…
  • 14. ? Ever heard of a faceted SearCH
  • 15. The old advanced search Search mouse Product category Product sub-cat Manufacturer Price range - Search Too many search results (794), narrow your search and try again
  • 16. The faceted search Order by price Logitech LS1 Laser Mouse Current search 29 € A cheap laser mouse that’ll get you through even the most problematic of PowerPoint presentations. mouse Sub-category Logitech G3 Gaming Mouse wireless mice (296) wired mice (96) laser mice (163) 59 € A great laser mouse with more buttons than you’ll ever have time to configure. A steal. Show all Microsoft Super Mouse Manufacturer 49 € Logitech(194) Microsoft (36) HP (3) A great mouse from the company that brought you the best product of all times, Windows Me. Show all Apple Mighty Mouse 129 € Price range The mouse the image happens to be of. Never tried it. Looks pretty nice, though. 0-50 € (384) 50-100 € (129) 100-300 € (50) page 1 2 3 4 5 6 7 8 9 10
  • 17. SOLR for faceted searching Apache SOLR let’s you facet search results – that is, to show possible search filters and give counts for them Faceting with SOLR can also be achieved in Drupal – and now a Drupal contrib module comes to play With ApacheSOLR –module (http://drupal.org/project/apachesolr) you can do all this with a couple of clicks in your Drupal installation
  • 18. SOLRfy your Drupal search 1/3 Download SOLR package from http://www.apache.org/dyn/closer.cgi/lucene/solr/ Unpackage it and check your server’s firewall settings to allow traffic to port 8983 Check that you have Java (RE) installed
  • 19. SOLRfy your Drupal search 2/3 Then get Drupal’s “apachesolr” module, there’s two xml files in the package, solrconfig.xml and schema.xml Go back to your SOLR directory, rename example directory to “drupal” so you’ll find it easier Drop the two xml files to that drupal/solr/conf –directory Go to that drupal directory and fire up Apache SOLR with “java –jar start.jar”
  • 20. SOLRfy your Drupal search 3/3 Now you can turn on “apachesolr” module in Drupal Tune the SOLR server settings in Drupal, reindex all content and then start clicking on those filtering/faceting settings on apachesolr You’ll have to turn the facets on as blocks But your search experience will be something else entirely …and once you see how searching with SOLR works, you’re not going back
  • 21. Apachesolr -module Automatically creates facets for taxonomy terms, for every vocabulary – you can just turn them on Automatically creates facets for CCK fields using dropdown/radio widgets (i.e. with a set of options) Exposes hooks for CCK fields (to make facets out of them) Exposes hook for altering the query (to some extent) Easy to use
  • 22. Faceting without SOLR You can do faceting without SOLR too “Faceted search” module will do it for you But at only 10K nodes, SOLR is three times as fast With 100K+ nodes, faceted search without SOLR is practically unusable …but for small sites, SOLR is not necessary for faceting
  • 23. SEARCH So you can with SOLR …but my site does A LOT more
  • 24. SOLRify the rest of your Drupal universe You probably know your performance problems on your site If it’s somehow personalized, you usually can’t do anything about it with caching How about using SOLR for it? Apache Solr Views –module (at a very mature “dev” state ;) and Views 3 (dev too) will talk together and integrate to apachesolr –module and it’s SOLR index When this is stable and fully functional…
  • 25. It’ll make your Views FLY
  • 26. SELECT title, description, mediatype FROM media LEFT JOIN media_types ON media_type_id = type_id LEFT JOIN media_tag ON media_tag.mid = media.id WHERE name LIKE ‘%s’ OR description LIKE ‘%s’ OR media.id IN (SELECT mid FROM promoted_media) But my problems are in my custom modules
  • 27. Custom modules Custom modules can be designed with ApacheSOLR in mind When you realize all the potential there is in a indexer that can index XML files, sky is the limit Whenever you have a data structure that’s too complex for MySQL to search from – and that’s not too rarely – you might benefit from indexing that data to SOLR and using your SOLR as the read-only “db”
  • 28. Custom modules – making SOLR do the reading media_workflow media_tag A single “row” for SOLR to index media media_revision tag media_version files
  • 29. Custom modules – making SOLR do the reading You know you need a better structure when you can’t circumvent running LEFT JOIN or subqueries – and running them gets too slow When you’ve optimized your code several times and restructuring your database would mean creating a read-optimized cache of everything Then SOLR might be just the thing to get you through
  • 30. Custom modules – making SOLR do the reading MySQL server Write Index Apache SOLR Read
  • 31. Libraries to use with custom modules Apachesolr –module uses a SOLR library written in PHP and licensed in New BSD (http://code.google.com/p/solr-php-client/) There’s also a PECL extension, but I’m not aware of any speed comparisons There are also contrib Drupal modules that give you an API for accessing SOLR
  • 32. magic It’s no bullet
  • 33. Not a magic bullet 1/2 Apache SOLR is a hassle with all the java containers and such, you’ll probably have to run it on a separate server You should always run stuff through Drupal or a script that will authenticate and authorize calls to SOLR (SOLR shouldn’t be exposed, unless all the data is public) Sometimes the extra server might be better to use on an extra MySQL node Sometimes you can just fix your stuff and make it as fast as it would be on Apache SOLR
  • 34. Not a magic bullet 2/2 And then there’s the fact SOLR is build mainly for the English language So make sure SOLR will do what you want for you in the language you want it to do it in
  • 35. Recap SOLR will right now give your Drupal site a fast, faceted search with really easy setup (thanks to apachesolr module) SOLR will soon give a boost to the performance and search abilities of your views SOLR will right now give you a lot of more power for searching from your custom databases and complicated content types, if used by a module developer It’s still not a magic bullet – it has it’s downsides
  • 36. Sounds easy? Been there, done that? is recruiting Send your CV to jobs@exove.com
  • 37. Thank you for your time Questions? If you’d rather ask me in private, drop a mail to kalle@exove.com