Submit Search
Upload
Solr: Search at the Speed of Light
•
35 likes
•
19,522 views
Erik Hatcher
Follow
Erik Hatcher's JavaZone '09 slides for "Solr: Search at the Speed of Light"
Read less
Read more
Technology
Health & Medicine
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
Lucene Introduction
Lucene Introduction
otisg
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
Sease
An introduction to the Transformers architecture and BERT
An introduction to the Transformers architecture and BERT
Suman Debnath
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
OVHcloud
Strata sf - Amundsen presentation
Strata sf - Amundsen presentation
Tao Feng
Neo4J : Introduction to Graph Database
Neo4J : Introduction to Graph Database
Mindfire Solutions
Introduction to Graph Databases
Introduction to Graph Databases
Max De Marzi
Cloudera training: secure your Cloudera cluster
Cloudera training: secure your Cloudera cluster
Cloudera, Inc.
Recommended
Lucene Introduction
Lucene Introduction
otisg
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
Sease
An introduction to the Transformers architecture and BERT
An introduction to the Transformers architecture and BERT
Suman Debnath
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
OVHcloud
Strata sf - Amundsen presentation
Strata sf - Amundsen presentation
Tao Feng
Neo4J : Introduction to Graph Database
Neo4J : Introduction to Graph Database
Mindfire Solutions
Introduction to Graph Databases
Introduction to Graph Databases
Max De Marzi
Cloudera training: secure your Cloudera cluster
Cloudera training: secure your Cloudera cluster
Cloudera, Inc.
Learning to Rank - From pairwise approach to listwise
Learning to Rank - From pairwise approach to listwise
Hasan H Topcu
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
HostedbyConfluent
MLlib: Spark's Machine Learning Library
MLlib: Spark's Machine Learning Library
jeykottalam
SoDA v2 - Named Entity Recognition from streaming text
SoDA v2 - Named Entity Recognition from streaming text
Sujit Pal
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
Rahul Jain
Natural Language Processing with Python
Natural Language Processing with Python
Benjamin Bengfort
End-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and Atlas
DataWorks Summit
TensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
Poo Kuan Hoong
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
Cambridge Semantics
The Semantic Knowledge Graph
The Semantic Knowledge Graph
Trey Grainger
OpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
DevOpsDays Tel Aviv
Cross language information retrieval (clir)slide
Cross language information retrieval (clir)slide
Mohd Iqbal Al-farabi
Recurrent Neural Networks
Recurrent Neural Networks
Rakuten Group, Inc.
Elasticsearch in Netflix
Elasticsearch in Netflix
Danny Yuan
Elastic 101 - Get started
Elastic 101 - Get started
Ismaeel Enjreny
Introduction To TensorFlow
Introduction To TensorFlow
Spotle.ai
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Juliano Costa
Deep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlow
Oswald Campesato
Intro to nlp
Intro to nlp
Rutu Mulkar-Mehta
Apache Solr crash course
Apache Solr crash course
Tommaso Teofili
Using Apache Solr
Using Apache Solr
pittaya
More Related Content
What's hot
Learning to Rank - From pairwise approach to listwise
Learning to Rank - From pairwise approach to listwise
Hasan H Topcu
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
HostedbyConfluent
MLlib: Spark's Machine Learning Library
MLlib: Spark's Machine Learning Library
jeykottalam
SoDA v2 - Named Entity Recognition from streaming text
SoDA v2 - Named Entity Recognition from streaming text
Sujit Pal
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
Rahul Jain
Natural Language Processing with Python
Natural Language Processing with Python
Benjamin Bengfort
End-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and Atlas
DataWorks Summit
TensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
Poo Kuan Hoong
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
Cambridge Semantics
The Semantic Knowledge Graph
The Semantic Knowledge Graph
Trey Grainger
OpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
DevOpsDays Tel Aviv
Cross language information retrieval (clir)slide
Cross language information retrieval (clir)slide
Mohd Iqbal Al-farabi
Recurrent Neural Networks
Recurrent Neural Networks
Rakuten Group, Inc.
Elasticsearch in Netflix
Elasticsearch in Netflix
Danny Yuan
Elastic 101 - Get started
Elastic 101 - Get started
Ismaeel Enjreny
Introduction To TensorFlow
Introduction To TensorFlow
Spotle.ai
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Juliano Costa
Deep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlow
Oswald Campesato
Intro to nlp
Intro to nlp
Rutu Mulkar-Mehta
What's hot
(20)
Learning to Rank - From pairwise approach to listwise
Learning to Rank - From pairwise approach to listwise
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
MLlib: Spark's Machine Learning Library
MLlib: Spark's Machine Learning Library
SoDA v2 - Named Entity Recognition from streaming text
SoDA v2 - Named Entity Recognition from streaming text
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
Natural Language Processing with Python
Natural Language Processing with Python
End-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and Atlas
TensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
The Semantic Knowledge Graph
The Semantic Knowledge Graph
OpenTelemetry For Architects
OpenTelemetry For Architects
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
Cross language information retrieval (clir)slide
Cross language information retrieval (clir)slide
Recurrent Neural Networks
Recurrent Neural Networks
Elasticsearch in Netflix
Elasticsearch in Netflix
Elastic 101 - Get started
Elastic 101 - Get started
Introduction To TensorFlow
Introduction To TensorFlow
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Juraci Paixão Kröhling - All you need to know about OpenTelemetry
Deep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlow
Intro to nlp
Intro to nlp
Viewers also liked
Apache Solr crash course
Apache Solr crash course
Tommaso Teofili
Using Apache Solr
Using Apache Solr
pittaya
Building a real time, solr-powered recommendation engine
Building a real time, solr-powered recommendation engine
Trey Grainger
Solr for Indexing and Searching Logs
Solr for Indexing and Searching Logs
Sematext Group, Inc.
Introduction to Apache Solr
Introduction to Apache Solr
Alexandre Rafalovitch
Enterprise Search in Practice: A Presentation of Survey Results and Areas for...
Enterprise Search in Practice: A Presentation of Survey Results and Areas for...
Findwise
Solr introduction
Solr introduction
Lap Tran
New-Age Search through Apache Solr
New-Age Search through Apache Solr
Edureka!
Enterprise Search Using Apache Solr
Enterprise Search Using Apache Solr
sagar chaturvedi
Large Scale Performance Monitoring for ElasticSearch, HBase, Solr, SenseiDB, ...
Large Scale Performance Monitoring for ElasticSearch, HBase, Solr, SenseiDB, ...
Sematext Group, Inc.
How Solr Search Works
How Solr Search Works
Atlogys Technical Consulting
Spark overview
Spark overview
Lisa Hua
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
thelabdude
Introduction to Solr
Introduction to Solr
Erik Hatcher
Apache Solr Search Course Drupal 7 Acquia
Apache Solr Search Course Drupal 7 Acquia
Dropsolid
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, Lucidworks
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, Lucidworks
Lucidworks
Apache Solr-Webinar
Apache Solr-Webinar
Edureka!
High Performance Solr
High Performance Solr
Shalin Shekhar Mangar
Introduction to Apache Solr
Introduction to Apache Solr
Christos Manios
Apache Spark Overview
Apache Spark Overview
Carol McDonald
Viewers also liked
(20)
Apache Solr crash course
Apache Solr crash course
Using Apache Solr
Using Apache Solr
Building a real time, solr-powered recommendation engine
Building a real time, solr-powered recommendation engine
Solr for Indexing and Searching Logs
Solr for Indexing and Searching Logs
Introduction to Apache Solr
Introduction to Apache Solr
Enterprise Search in Practice: A Presentation of Survey Results and Areas for...
Enterprise Search in Practice: A Presentation of Survey Results and Areas for...
Solr introduction
Solr introduction
New-Age Search through Apache Solr
New-Age Search through Apache Solr
Enterprise Search Using Apache Solr
Enterprise Search Using Apache Solr
Large Scale Performance Monitoring for ElasticSearch, HBase, Solr, SenseiDB, ...
Large Scale Performance Monitoring for ElasticSearch, HBase, Solr, SenseiDB, ...
How Solr Search Works
How Solr Search Works
Spark overview
Spark overview
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
Introduction to Solr
Introduction to Solr
Apache Solr Search Course Drupal 7 Acquia
Apache Solr Search Course Drupal 7 Acquia
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, Lucidworks
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, Lucidworks
Apache Solr-Webinar
Apache Solr-Webinar
High Performance Solr
High Performance Solr
Introduction to Apache Solr
Introduction to Apache Solr
Apache Spark Overview
Apache Spark Overview
Similar to Solr: Search at the Speed of Light
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr - By Jay Hill
lucenerevolution
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr - By Jay Hill
lucenerevolution
The Seven Deadly Sins of Solr
The Seven Deadly Sins of Solr
Lucidworks (Archived)
Games for the Masses (Jax)
Games for the Masses (Jax)
Wooga
Building specialized industry applications using Solr, and migration from FAS...
Building specialized industry applications using Solr, and migration from FAS...
Lucidworks (Archived)
Building specialized industry apps using solr - By Rahul Agarwalla
Building specialized industry apps using solr - By Rahul Agarwalla
lucenerevolution
Building specialized industry applications using Solr, and migration from FAS...
Building specialized industry applications using Solr, and migration from FAS...
Lucidworks (Archived)
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
MySQLConference
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Yukinori Suda
HBase and Hadoop at Adobe
HBase and Hadoop at Adobe
Cosmin Lehene
Oracle+golden+gate+introduction
Oracle+golden+gate+introduction
xiakaicd
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
Cominvent AS
Mule ESB - Integration Simplified
Mule ESB - Integration Simplified
Rich Software
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
jaxLondonConference
Ontology and semantic web (2016)
Ontology and semantic web (2016)
Craig Trim
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
cwensel
Solr @ eBay Kleinanzeigen
Solr @ eBay Kleinanzeigen
Lucidworks (Archived)
MarkLogic Server / NoSQL at ApacheCon
MarkLogic Server / NoSQL at ApacheCon
hunterhacker
Building Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and Cascading
cwensel
Pig programming is fun
Pig programming is fun
DataWorks Summit
Similar to Solr: Search at the Speed of Light
(20)
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr - By Jay Hill
The Seven Deadly Sins of Solr
The Seven Deadly Sins of Solr
Games for the Masses (Jax)
Games for the Masses (Jax)
Building specialized industry applications using Solr, and migration from FAS...
Building specialized industry applications using Solr, and migration from FAS...
Building specialized industry apps using solr - By Rahul Agarwalla
Building specialized industry apps using solr - By Rahul Agarwalla
Building specialized industry applications using Solr, and migration from FAS...
Building specialized industry applications using Solr, and migration from FAS...
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
HBase and Hadoop at Adobe
HBase and Hadoop at Adobe
Oracle+golden+gate+introduction
Oracle+golden+gate+introduction
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
Oslo Enterprise MeetUp May 12th 2010 - Jan Høydahl
Mule ESB - Integration Simplified
Mule ESB - Integration Simplified
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
Ontology and semantic web (2016)
Ontology and semantic web (2016)
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
Solr @ eBay Kleinanzeigen
Solr @ eBay Kleinanzeigen
MarkLogic Server / NoSQL at ApacheCon
MarkLogic Server / NoSQL at ApacheCon
Building Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and Cascading
Pig programming is fun
Pig programming is fun
More from Erik Hatcher
Ted Talk
Ted Talk
Erik Hatcher
Solr Payloads
Solr Payloads
Erik Hatcher
it's just search
it's just search
Erik Hatcher
Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)
Erik Hatcher
Solr Indexing and Analysis Tricks
Solr Indexing and Analysis Tricks
Erik Hatcher
Solr Powered Libraries
Solr Powered Libraries
Erik Hatcher
Solr Query Parsing
Solr Query Parsing
Erik Hatcher
"Solr Update" at code4lib '13 - Chicago
"Solr Update" at code4lib '13 - Chicago
Erik Hatcher
Query Parsing - Tips and Tricks
Query Parsing - Tips and Tricks
Erik Hatcher
Solr 4
Solr 4
Erik Hatcher
Solr Recipes
Solr Recipes
Erik Hatcher
Lucene for Solr Developers
Lucene for Solr Developers
Erik Hatcher
Introduction to Solr
Introduction to Solr
Erik Hatcher
Solr Flair
Solr Flair
Erik Hatcher
Introduction to Solr
Introduction to Solr
Erik Hatcher
Lucene for Solr Developers
Lucene for Solr Developers
Erik Hatcher
Rapid Prototyping with Solr
Rapid Prototyping with Solr
Erik Hatcher
Lucene for Solr Developers
Lucene for Solr Developers
Erik Hatcher
What's New in Solr 3.x / 4.0
What's New in Solr 3.x / 4.0
Erik Hatcher
Solr Application Development Tutorial
Solr Application Development Tutorial
Erik Hatcher
More from Erik Hatcher
(20)
Ted Talk
Ted Talk
Solr Payloads
Solr Payloads
it's just search
it's just search
Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)
Solr Indexing and Analysis Tricks
Solr Indexing and Analysis Tricks
Solr Powered Libraries
Solr Powered Libraries
Solr Query Parsing
Solr Query Parsing
"Solr Update" at code4lib '13 - Chicago
"Solr Update" at code4lib '13 - Chicago
Query Parsing - Tips and Tricks
Query Parsing - Tips and Tricks
Solr 4
Solr 4
Solr Recipes
Solr Recipes
Lucene for Solr Developers
Lucene for Solr Developers
Introduction to Solr
Introduction to Solr
Solr Flair
Solr Flair
Introduction to Solr
Introduction to Solr
Lucene for Solr Developers
Lucene for Solr Developers
Rapid Prototyping with Solr
Rapid Prototyping with Solr
Lucene for Solr Developers
Lucene for Solr Developers
What's New in Solr 3.x / 4.0
What's New in Solr 3.x / 4.0
Solr Application Development Tutorial
Solr Application Development Tutorial
Recently uploaded
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
The Digital Insurer
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
SeasiaInfotech2
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Recently uploaded
(20)
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Solr: Search at the Speed of Light
1.
Solr
Search at the Speed of Light JavaZone 2009 September 10 Oslo Erik Hatcher, Lucid Imagination erik.hatcher@lucidimagination.com 1
2.
Solr History
• Created by Yonik Seeley for CNET • Contributed to Apache in January 2006 • December 2006:Version 1.1 released • June 2007:Version 1.2 released • September 2008:Version 1.3 released • ~September 2009:Version 1.4 http://lucene.apache.org/solr © 2008-2009 Lucid Imagination, Inc. 2
3.
Solr: Big Picture
Data DB Document Document Documents Solr Search Results © 2008-2009 Lucid Imagination, Inc. 3
4.
Features • Lucene
power exposed over HTTP • Scalability: caching, replication, distributed search • Faceting • And more: spell checking, highlighting, clustering, rich document and DB indexing, "more like this" © 2008-2009 Lucid Imagination, Inc. 4
5.
Lucene • Fast,
scalable search library • Lucene index structure • Index contains documents • documents have fields • indexed fields have terms © 2008-2009 Lucid Imagination, Inc. 5
6.
Inverted Index •
Commonly used search engine data structure • Efficient lookup of terms across large number of documents • Usually stores positional information to enable From "Taming Text" by Grant Ingersoll and Tom Morton phrase/proximity queries © 2008-2009 Lucid Imagination, Inc. 6
7.
Analysis Process © 2008-2009
Lucid Imagination, Inc. 7
8.
Analyzing the analyzer
Example phrase The quick brown fox jumps over the lazy dog. © 2008-2009 Lucid Imagination, Inc. 8
9.
WhitespaceAnalyzer
Simplest built-in analyzer The quick brown fox jumps over the lazy dog. [The] [quick] [brown] [fox] [jumps] [over] [the] [lazy] [dog.] © 2008-2009 Lucid Imagination, Inc. 9
10.
SimpleAnalyzer
Lowercases, splits at non-letter boundaries the quick brown fox jumps over the lazy dog. [the] [quick] [brown] [fox] [jumps] [over] [the] [lazy] [dog] © 2008-2009 Lucid Imagination, Inc. 10
11.
StopAnalyzer
Lowercases and removes stop words The quick brown fox jumps over the lazy dog. [quick] [brown] [fox] [jumps] [over] [lazy] [dog] © 2008-2009 Lucid Imagination, Inc. 11
12.
SnowballAnalyzer
Stemming algorithm The quick brown fox jumps over the lazi dog. [the] [quick] [brown] [fox] [jump] [over] [the] [lazi] [dog] © 2008-2009 Lucid Imagination, Inc. 12
13.
What's in a
token? © 2008-2009 Lucid Imagination, Inc. 13
14.
Relevance •
Term frequency (TF): number of times a term appears in a document • Inverse document frequency (IDF): One over number of times term appears in the index (1/df) • Field length normalization: control affect field length, in number of terms, has on score • Boost factors: terms, fields, or documents © 2008-2009 Lucid Imagination, Inc. 14
15.
Lucene Scoring
d1 q1 Θ © 2008-2009 Lucid Imagination, Inc. 15
16.
Solr APIs •
HTTP GET/POST (curl or any other HTTP client) • JSON • SolrJ (embedded or HTTP) • solr-ruby • python, PHP, solrsharp, XSLT © 2008-2009 Lucid Imagination, Inc. 16
17.
Solr in Production
Incoming Search Requests Load Balancer Solr Solr Master Solr Master Shard Request Shard Request Load Balancer Load Balancer Shard Shard Shard Shard Master 1..n Master Replicant shards Replicant Replicant Replicant Replicant Replicant Replicant Replicant © 2008-2009 Lucid Imagination, Inc. 17
18.
Getting Started:
It's This Easy 1.Start Solr java -jar start.jar 2.Index your data java -jar post.jar *.xml 3.Search http://localhost:8983/solr © 2008-2009 Lucid Imagination, Inc. 18
19.
Configuration •
schema.xml • field types and fields • solrconfig.xml • request handler mappings • cache settings: filter, query, document • warming listeners • HTTP cache settings • Lucene index parameters • plugins: spell checking, highlighting © 2008-2009 Lucid Imagination, Inc. 19
20.
Solr add/update XML <add><doc>
<field name="id">MA147LL/A</field> <field name="name">Apple 60 GB iPod with Video Playback Black</field> <field name="manu">Apple Computer Inc.</field> <field name="cat">electronics</field> <field name="cat">music</field> <field name="features">iTunes, Podcasts, Audiobooks</field> <field name="features">Stores up to 15,000 songs, 25,000 photos, or 150 hours of video</field> <field name="features">2.5-inch, 320x240 color TFT LCD display with LED backlight</field> <field name="features">Up to 20 hours of battery life</field> <field name="features">Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video</field> <field name="features">Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication</field> <field name="includes">earbud headphones, USB cable</field> <field name="weight">5.5</field> <field name="price">399.00</field> <field name="popularity">10</field> <field name="inStock">true</field> </doc></add> © 2008-2009 Lucid Imagination, Inc. 20
21.
Indexing Solr XML
• Via curl:'http://localhost:8983/ curl solr/update?commit=true' -- data-binary @ipod_video.xml - H 'Content-type:text/xml; charset=utf-8' • Via Solr's Java-based post tool: java -jar post.jar ipod_video.xml © 2008-2009 Lucid Imagination, Inc. 21
22.
Indexing CSV curl 'http://localhost:8983/solr/update/ csv?commit=true'
--data-binary @books.csv - H 'Content-type:text/plain; charset=utf-8' © 2008-2009 Lucid Imagination, Inc. 22
23.
Content Streams •
Allows Solr server to fetch local or remote data itself. Must enable remote streaming in solrconfig.xml • http://localhost:8983/solr/update?stream.file=<local Solr path to exampledocs>/ipod_video.xml • &stream.url=<url to content> • Security warning: allows Solr to fetch arbitrary server-side file or network URL content © 2008-2009 Lucid Imagination, Inc. 23
24.
Indexing Rich Documents curl
'http://localhost:8983/solr/update/ extract? literal.id=doc1&commit=true&extractOnly=true &wt=ruby&indent=on' -F "myfile=@tutorial.html" © 2008-2009 Lucid Imagination, Inc. 24
25.
Indexing with SolrJ SolrServer
solr = new CommonsHttpSolrServer(new URL("http://localhost:8983/solr")); SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "JAVAZONE_09"); doc.addField("title", "JavaZone 2009 SolrJ Example"); solr.add(doc); solr.commit(); // after a batch, not per document solr.optimize(); // periodically, when needed © 2008-2009 Lucid Imagination, Inc. 25
26.
Indexing with Ruby solr
= Connection.new( 'http://localhost:8983/solr', :autocommit => :on) solr.add(:id => 123, :title => 'Solr in Action') solr.optimize # periodically, as needed © 2008-2009 Lucid Imagination, Inc. 26
27.
Data Import Handler •
Indexes relational database, XML data sources, e-mail, and more • Supports full and incremental/delta indexing • Extensible with custom data sources, transformers, etc • http://wiki.apache.org/solr/DataImportHandler © 2008-2009 Lucid Imagination, Inc. 27
28.
DB Indexing http://localhost:8983/solr/db/dataimport? command=full-import
© 2008-2009 Lucid Imagination, Inc. 28
29.
Example Search Request
• http://localhost:8983/solr/select?q=query • &start=50 • &rows=25 • &fq=filter+query • &facet=on&facet.field=category © 2008-2009 Lucid Imagination, Inc. 29
30.
Debug Query •
&debugQuery=true is your friend • Includes parsed query, explanations, and search component timings in response © 2008-2009 Lucid Imagination, Inc. 30
31.
Query Parser •
Controlled by defType parameter • &defType=lucene (actually a Solr extension of Lucene’s QueryParser) • &defType=dismax • Local {!..} override syntax © 2008-2009 Lucid Imagination, Inc. 31
32.
Solr Query Parser
• http://lucene.apache.org/java/2_4_0/ queryparsersyntax.html + Solr extensions • Kitchen sink parser, includes advanced user- unfriendly syntax • Syntax errors throw parse exceptions back to client • Example: title:ipod* AND price:[0 TO 100] © 2008-2009 Lucid Imagination, Inc. 32
33.
Dismax Query Parser
• Simplified syntax: loose text “quote phrases” -prohibited +required • Spreads query terms across query fields (qf) with dynamic boosting per field, implicit phrase construction (pf), boosting function (bf), boosting query (bq), and minimum match (mm) © 2008-2009 Lucid Imagination, Inc. 33
34.
Searching with SolrJ SolrServer
server = new CommonsHttpSolrServer("http:// localhost:8983/solr"); SolrQuery params = new SolrQuery("author:John"); params.setFields("*,score"); params.setRows(3); QueryResponse response = server.query(params); for (SolrDocument document : response.getResults()) { System.out.println("Doc: " + document); } © 2008-2009 Lucid Imagination, Inc. 34
35.
Searching with Ruby conn
= Connection.new( 'http://localhost:8983/solr') conn.query('my query') do |hit| puts hit.inspect end © 2008-2009 Lucid Imagination, Inc. 35
36.
delete, update, etc
• Delete: • <delete><id>05991</id></delete> • <delete> <query>category:Unused</query> </delete> • java -Ddata=args -jar post.jar "<delete><query>*:*</query></delete>" • Update: simply <add> doc with same unique key • Commit: <commit/> • Optimize: <optimize/> © 2008-2009 Lucid Imagination, Inc. 36
37.
Faceting • Counts per
subset within results • Facet on: field terms, queries, date ranges • &facet=on &facet.field=cat &facet.query=price:[0 TO 100] • http://wiki.apache.org/solr/ SimpleFacetParameters © 2008-2009 Lucid Imagination, Inc. 37
38.
Spell checking •
Not enabled by default, see example config to wire it in • http://localhost:8983/solr/spell? q=epod&spellcheck=on&spellcheck.build=true • File or index-based dictionaries • Supports pluggable distance algorithms: Levenstein and JaroWinkler • http://wiki.apache.org/solr/SpellCheckComponent © 2008-2009 Lucid Imagination, Inc. 38
39.
Highlighting • http://localhost:8983/solr/select?
q=ipod&hl=on&hl.fl=manu,name • http://wiki.apache.org/solr/ HighlightingParameters © 2008-2009 Lucid Imagination, Inc. 39
40.
More Like This
• http://localhost:8983/solr/select? q=ipod&mlt=true&mlt.fl=manu,cat&mlt.min df=1&mlt.mintf=1&fl=id,score,name • http://wiki.apache.org/solr/MoreLikeThis © 2008-2009 Lucid Imagination, Inc. 40
41.
Scaling: Query Throughput
• Replication • slaves poll master for index updates • transfers index files from master to slave • configuration files can also be transferred • entirely Java/HTTP-based in Solr 1.4 (prior versions used rsync) © 2008-2009 Lucid Imagination, Inc. 41
42.
Scaling: Collection Size
• Distribution • Index documents across shards • query single server with shards parameter • sends requests to each shard • aggregates result to a single response © 2008-2009 Lucid Imagination, Inc. 42
43.
Solr-powered UI •
Solritas (from "celeritas"): VelocityResponseWriter • easily templated output • SolrJS: jQuery-based widgets • see http://solrjs.solrstuff.org/ • Blacklight and Flare: RoR plugins © 2008-2009 Lucid Imagination, Inc. 43
44.
Lucene in Action,
2nd Edition http://www.manning.com/lucene © 2008-2009 Lucid Imagination, Inc. 44
45.
Search at Lucid http://search.lucidimagination.com/?q=javazone ©
2008-2009 Lucid Imagination, Inc. 45
46.
/")$/#$0(#
!"#$%&'()*$+),$-+&$0&,12&#-((23#$)4&2+,$,5&-6 78)#12& !"#2+29:-43&2#-050,2( !"#$%&,2)(&$+#4"%20&,12&4)3*20,&#-442#,$-+&-6& !"#2+29:-43&#-(($,,230.&#-+,3$;",-30&)+%&$+64"2+#230& <"3&($00$-+&$0&,-&023=2&)0&!"#$%#&'#($)*$+,-#..#&-#$6-3& !"#2+29:-43>;)02%&02)3#1&0-4",$-+0 ?248&-"3&#"0,-(230&*2,&,12&(-0,&-",&-6&!"#2+29:-43&> !"#$%&'( (-0,&@$%245&"02%&-82+&0-"3#2&02)3#1&0-6,@)32&&& A&BCCD>BCCE © 2008-2009 !"#$%&'()*$+),$-+.&'+#/Inc. Lucid Imagination, !"#$%$&'()*+',%-'./$0+'*)1)2',+$'.+,-$3,+42')5'./$'67,#/$'()5.8,+$'9)"%-,.0)% 46
47.
!"#$%&'()*$+),$-+&./#0+$#)1&./)(
! 2-+$3&4//1/56 ! <)8#&F8/11/+9,/$+6 012),-1&-3&4-51&& Unique !"#2+264-51&#-(($,,21.&780&(2(921 0-;3-"+%21.&0=G64H7.&<-1,:21+&!$*:, Combination of ! 78)+,&'+*/89-116 H7&42)1#:.&0=G.&I5J2K$21 Enterprise Search !"#$%&"'&(')*+,#-#'.&&%'!$/01 ! @8$)+&G$+3/8,-+6 and Lucene !"#2+264-51&#-(($,,21.&0:)$1.&780 L2K25-@2%&M2901)N521.&,:2&N29OJ&3$1J,& ! :8$3&;),#0/86 #-(@12:2+J$K2&J2)1#:&2+*$+2& Expertise 0-;$+%2&"'&(')*+,#-#'3-'4,%3&-1'5&&6 71$+#$@)5&P1#:$,2#,&),&PF !"#2+264-51&#-(($,,21.&780&(2(921 ! 4$(-+&H-9/+,0)16 ! <)83&<$11/8 4-5",$-+J&)1#:$,2#,.&<-1,:21+&!$*:, !"#2+264-51&#-(($,,21.&780& (2(921 ! I)5&;$116 ! 4)($&4$8/+ 4-5",$-+J&P1#:$,2#,.&M255J&Q)1*- <",#:6=$>)&#-(($,,21.&780&(2(921 ! H5)+&<#F$+1/56 ! =+%8>/?&@$1)1/#3$& !"#2+264-51&#-(($,,21.&&780&(2(921 !"#2+26<",#:6?)%--@&#-(($,,21.&780& (2(921& ! B08$9&;-9,/,,/86&C=%D$9-8E ! A-"*&B",,$+*6&C=%D$9-8E !"#2+264-51&#-(($,,21.&&780&(2(921 012),-1&-3&!"#2+2.&<",#:&A&?)%--@ 82(921&P@)#:2&4-3,N)12&Q-"+%),$-+ B&CDDE;CDDF © 2008-2009 !"#$%&'()*$+),$-+.&'+#/ Lucid Imagination, Inc. 47
48.
!"#$%&'()*$+),$-+&."/$+0//&1-%02 ;:00 <-=+2-)%
()*+,-,./+"0+,/.1) 2+,*.3.+4"5./*,.67*.1)/ & 8,++"& 3)2"04)%%&567 !"#0+0 89*:)%0 >9)#?0@-:* 2199+,:.;<""=7--1,*>" ?,;.).)@>" 21)/7<*.)@" !"#$$%&#$$' © 2008-2009 A7:.4"B9;@.);*.1) 21)3.4+)*.;< !"#$%$&'()*+',%-'./$0+'*)1)2',+$'.+,-$3,+42')5'./$'67,#/$'()5.8,+$'9)"%-,.0)% Lucid Imagination, Inc. 48
49.
Thank you
http://www.lucidimagination.com © 2008-2009 Lucid Imagination, Inc. 49
50.
© 2008-2009
Lucid Imagination, Inc. 50
Download now