SlideShare une entreprise Scribd logo
1  sur  15
Optimizing Solr for Performance  & User Experience SFBay Apache Lucene/Solr Meetup - Jan 2010                        Brian Doll :@briandoll
[object Object]
12 year old online business
600k+ SKUs
1.5M Songs
Faceted navigation with Solr
On-site search with Solr
Lots of needles in a huge haystackSFBay Apache Lucene/Solr Meetup - Jan 2010                        Brian Doll : @briandoll
[object Object]
2k app requests per minute
MySQL database
5 memcache instancesSFBay Apache Lucene/Solr Meetup - Jan 2010                        Brian Doll :@briandoll
[object Object]
~100ms average response time
3 Solr hosts on VMWare

Contenu connexe

Plus de Brian Doll

The Ultimate Productivity Hack, Having Kids
The Ultimate Productivity Hack, Having KidsThe Ultimate Productivity Hack, Having Kids
The Ultimate Productivity Hack, Having KidsBrian Doll
 
The Performance and Scalability Mindset
The Performance and Scalability MindsetThe Performance and Scalability Mindset
The Performance and Scalability MindsetBrian Doll
 
Finding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmFinding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmBrian Doll
 
New Relic .NET Agent Overview
New Relic .NET Agent OverviewNew Relic .NET Agent Overview
New Relic .NET Agent OverviewBrian Doll
 
New Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeNew Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeBrian Doll
 
Rit. the anti-cms
Rit. the anti-cmsRit. the anti-cms
Rit. the anti-cmsBrian Doll
 
What should we work on next?
What should we work on next?What should we work on next?
What should we work on next?Brian Doll
 
Get Fit to Win
Get Fit to WinGet Fit to Win
Get Fit to WinBrian Doll
 
Optimizing Your Online Store for the Holidays
Optimizing Your Online Store for the HolidaysOptimizing Your Online Store for the Holidays
Optimizing Your Online Store for the HolidaysBrian Doll
 

Plus de Brian Doll (9)

The Ultimate Productivity Hack, Having Kids
The Ultimate Productivity Hack, Having KidsThe Ultimate Productivity Hack, Having Kids
The Ultimate Productivity Hack, Having Kids
 
The Performance and Scalability Mindset
The Performance and Scalability MindsetThe Performance and Scalability Mindset
The Performance and Scalability Mindset
 
Finding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmFinding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpm
 
New Relic .NET Agent Overview
New Relic .NET Agent OverviewNew Relic .NET Agent Overview
New Relic .NET Agent Overview
 
New Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeNew Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL Alike
 
Rit. the anti-cms
Rit. the anti-cmsRit. the anti-cms
Rit. the anti-cms
 
What should we work on next?
What should we work on next?What should we work on next?
What should we work on next?
 
Get Fit to Win
Get Fit to WinGet Fit to Win
Get Fit to Win
 
Optimizing Your Online Store for the Holidays
Optimizing Your Online Store for the HolidaysOptimizing Your Online Store for the Holidays
Optimizing Your Online Store for the Holidays
 

Dernier

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Optimizing Solr for Performance & User Experience

  • 1. Optimizing Solr for Performance & User Experience SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 2.
  • 3. 12 year old online business
  • 8. Lots of needles in a huge haystackSFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll : @briandoll
  • 9.
  • 10. 2k app requests per minute
  • 12. 5 memcache instancesSFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 13.
  • 15. 3 Solr hosts on VMWare
  • 16. 50% CPU load, 2GB memory each
  • 17. 1.00 Apdex ScoreSFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 18. We love that the structure of your data is part of your Solr environment (schema.xml) And the way you query against that data is part of your app SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 19. on-site search is not as varied as we had thought SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 20. Surprisingly, lots of people search like this: Piano SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 21. What if we applied a strategy pattern to our search queries? SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 22. “Instrument” searches could get their own strategy. “Artist” searches could get their own. … SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 23. Make sure your default search is working well first! Subtle changes to our algorithm provided a 32% increase in per-search value, with some phrases seeing an increase of over 3000%! SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 24. We construct various strategies: ... DEFAULT_SEARCH_HASH = { :id_codes => { :search_type => :phrase, :boost => 1024, :slop => 2 }, :bucket_proper_names => { :search_type => :phrase, :boost => 500, :slop => 2 }, :bucket_titles => { :search_type => :phrase, :boost => 450, :slop => 100 }, :bucket_songs => { :search_type => :phrase, :boost => 64, :slop => 5 }, :bucket_primary_cats => { :search_type => :phrase, :boost => 32, :slop => 100}, :bucket_secondary_cats => { :search_type => :phrase, :boost => 16, :slop => 100 }, :bucket_binding => { :search_type => :phrase, :boost => 2, :slop => 100}, :bucket_lead_time => { :search_type => :phrase, :boost => 1, :slop => 100}, :bucket_blurbs => { :search_type => :phrase, :boost => 0.05, :slop => 7 }, :text => { :search_type => :term, :boost => 0.005 } } ... def self.popular_instrument_strategy(search_phrase) params = {:instrument_text => {:search_type => :phrase, :boost => 600, :slop => 2 } } Strategy.new("default-instrument", search_phrase, params , :top_selling) end ... SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 25. And then we have an algorithm to help determine which strategy we should apply to an incoming search request: [redacted] SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 26. Implementing these strategies provided an 86% increase in per-search value. We can now fine-tune individual categories of searches, as well as specific phrases. SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 27. Rule of thumb: Don't try to please everybody. Please the people who make you money. Tuning your search algorithm is an endless game, but if you focus on pleasing customer X, it'll cost you. SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll
  • 28. In order to make all this happen, we relied heavily on two tools: SFBay Apache Lucene/Solr Meetup - Jan 2010 Brian Doll :@briandoll