SlideShare a Scribd company logo
1 of 46
Download to read offline
Improving app
searches with
Elasticsearch
Leandro Domínguez
ABOUT ME
Ruby on Rails Developer
Leandro
Domínguez
Rootstrap Improving App Searches with ElasticSearch
ABOUT ME
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
Search engine
NoSQL Database
Based on Lucene
WHAT IS ELASTICSEARCH
Open Source, written in Java
API REST via JSON
Scalable
Really fast
Rootstrap Improving App Searches with ElasticSearch
Rootstrap Improving App Searches with ElasticSearch
ELK Stack
Collect and Transform Search and Analyze Visualize and Manage
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
SOME COMPANIES THAT USE ELASTICSEARCH
Rootstrap Improving App Searches with ElasticSearch
E-COMMERCE
WHEN CAN WE USE IT?
Rootstrap Improving App Searches with ElasticSearch
e-commerce
WHEN CAN WE USE IT?
Rootstrap Improving App Searches with ElasticSearch
WHEN CAN WE USE IT?
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
- Text analyzers and tokenizers
- Indexes
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
- Text analyzers and tokenizers
- Indexes
Rootstrap Improving App Searches with ElasticSearch
HOW DOES IT WORK?
Text analyzers & tokenizers
Configuring built-in analyzers
Fingerprint Analyzer
Keyword Analyzer
Language Analyzers
Pattern Analyzer
Simple Analyzer
Standard Analyzer
Stop Analyzer
Whitespace Analyzer
Custom Analyzer
Char Group Tokenizer
Classic Tokenizer
Edge n-gram tokenizer
Limitations of the max_g ram parameter
Keyword Tokenizer
Letter Tokenizer
Lowercase Tokenizer
N-gram tokenizer
Path Hierarchy Tokenize
Path Hierarchy Tokenizer Example
Pattern Tokenizer
Simple Pattern Tokenizer
Simple Pattern Split Tokenizer
Standard Tokenizer
Thai Tokenizer
UAX URL Email Tokenizer
Whitespace Tokenizer
Analyzers Tokenizers
Rootstrap Improving App Searches with ElasticSearch
Text analyzers & tokenizers
HOW DOES IT WORK?
≠
Agenad telefónica. De 2018
Agenda de teléfonos 2018
Rootstrap Improving App Searches with ElasticSearch
Text analyzers
HOW DOES IT WORK?
Rootstrap Improving App Searches with ElasticSearch
Agenad telefónica. De 2018
Lowercase agenad telefónica. de 2018
Charfilter agenad telefonica. de 2018
Tokenizer agenad telefonica de 2018
Stopwords agenad telefonica 2018
“Fuzzy” agenda telefonica 2018
Stemmer agend telef 2018
agenda de telefonos 2018
Lowercase agenda de telefonos 2018
Charfilter agenda de telefonos 2018
Tokenizer agenda de telefonos 2018
Stopwords agenda telefonos 2018
Stemmer agend telef 2018
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
- Text analyzers and tokenizers
- Indexes
Rootstrap Improving App Searches with ElasticSearch
ID Description
1 Here is a text
2 Another text here
3 A yey here
HOW DOES IT WORK?
Direct Index
Rootstrap Improving App Searches with ElasticSearch
ID Description
1 Here is a text
2 Another text here
3 A yey here
HOW DOES IT WORK?
Direct Index
text
Rootstrap Improving App Searches with ElasticSearch
ID Description
1 Here is a text
2 Another text here
3 A yey here
HOW DOES IT WORK?
Direct Index
SELECT * FROM model WHERE * LIKE '%text%'
Rootstrap Improving App Searches with ElasticSearch
text
Key ID
here 1, 2, 3
is 1
a 1, 3
text 1, 2
another 2
yey 3
ID Description
1 Here is a text
2 Another text here
3 A yey here
HOW DOES IT WORK?
Inverted Index
Rootstrap Improving App Searches with ElasticSearch
text
Key ID
here 1,1, 2,3, 3,3
is 1, 2
a 1, 3, 3, 1
text 1,4, 2,2
another 2,1
yey 3,2
ID Description
1 Here is a text
2 Another text here
3 A yey here
HOW DOES IT WORK?
Inverted Index
Rootstrap Improving App Searches with ElasticSearch
Architecture of ES
- Document
- Index
- Shards
- Node
- Cluster
- Replica
HOW DOES IT WORK?
Some things we
should know
Rootstrap Improving App Searches with ElasticSearch
SQL Elasticsearch
Table Index
Row Document
Schema Implicit
Database Cluster
HOW DOES IT WORK?
SQL vs ElasticSearch
Rootstrap Improving App Searches with ElasticSearch
How does it work? / API REST
HOW DOES IT WORK? / API REST
Rootstrap Improving App Searches with ElasticSearch
Request
HOW DOES IT WORK? / API REST
Creating Our First Index
Response
Rootstrap Improving App Searches with ElasticSearch
markets
HOW DOES IT WORK? / REST
Adding our first document
Request Response
Rootstrap Improving App Searches with ElasticSearch
Showing doc
HOW DOES IT WORK? / REST
Request
Response
Rootstrap Improving App Searches with ElasticSearch
Type Inference
HOW DOES IT WORK? / REST
Request Response
Rootstrap Improving App Searches with ElasticSearch
Request Response
Type Inference
HOW DOES IT WORK? / REST
Rootstrap Improving App Searches with ElasticSearch
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
Searching doc
QUERIES & FILTERS / SEARCH
Request
Extra params
Response
Boosting results
QUERIES & FILTERS / SEARCH
What is Elasticsearch?01
When can we use it?02
How does it work?03
Queries & Filters04
Sample app in Rails05
CONTENTS
Rootstrap Improving App Searches with ElasticSearch
elasticsearch-model
elasticsearch-rails
SAMPLE RAILS APP / GEMS
Rootstrap Improving App Searches with ElasticSearch
SAMPLE RAILS APP / GEMS
Rootstrap Improving App Searches with ElasticSearch
Rootstrap Improving App Searches with ElasticSearch
CONCLUSIONS
Advantages Disadvantages
Faster and better searches
Scalable
More availability
Indexing implies extra time
Learn new API language
More resources
Questions?
Q&A
Thanks!
Sample Rails App / Gems
Bonsai
Rootstrap Improving App Searches with ElasticSearch
Sample Rails App / Gems
Rootstrap Improving App Searches with ElasticSearch

More Related Content

Similar to Mejorando las busquedas en nuestras aplicaciones web con elasticsearch

Solr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studySolr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studyCharlie Hull
 
The Power of Open Data
The Power of Open DataThe Power of Open Data
The Power of Open DataPhil Windley
 
Simplifying RESTful Search- Impetus Webinar
Simplifying RESTful Search- Impetus WebinarSimplifying RESTful Search- Impetus Webinar
Simplifying RESTful Search- Impetus WebinarImpetus Technologies
 
Working Of Search Engine
Working Of Search EngineWorking Of Search Engine
Working Of Search EngineNIKHIL NAIR
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The FutureTracy Lee
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and SparkAudible, Inc.
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularTracy Lee
 
Seminar report(rohitsahu cs 17 vth sem)
Seminar report(rohitsahu cs 17 vth sem)Seminar report(rohitsahu cs 17 vth sem)
Seminar report(rohitsahu cs 17 vth sem)ROHIT SAHU
 
E-commerce Search Engine with Apache Lucene/Solr
E-commerce Search Engine with Apache Lucene/SolrE-commerce Search Engine with Apache Lucene/Solr
E-commerce Search Engine with Apache Lucene/SolrVincenzo D'Amore
 
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsInitial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsRuben Verborgh
 
SemTech 2010: Pelorus Platform
SemTech 2010: Pelorus PlatformSemTech 2010: Pelorus Platform
SemTech 2010: Pelorus PlatformClark & Parsia LLC
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchRaya Rahadian
 
Apace Solr Web Development.pdf
Apace Solr Web Development.pdfApace Solr Web Development.pdf
Apace Solr Web Development.pdfAyesha Siddika
 
Role of Text Mining in Search Engine
Role of Text Mining in Search EngineRole of Text Mining in Search Engine
Role of Text Mining in Search EngineJay R Modi
 
Apace Solr Web Development.pdf
Apace Solr Web Development.pdfApace Solr Web Development.pdf
Apace Solr Web Development.pdfAbanti Aazmin
 
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptx
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptxMastering-Salesforce-Development-A-Comprehensive-Overview (1).pptx
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptxAnupama Kate
 
Advanced full text searching techniques using Lucene
Advanced full text searching techniques using LuceneAdvanced full text searching techniques using Lucene
Advanced full text searching techniques using LuceneAsad Abbas
 
Full text search
Full text searchFull text search
Full text searchdeleteman
 
How a search engine works report
How a search engine works reportHow a search engine works report
How a search engine works reportSovan Misra
 
Adding High Performance Search to your Grails App
Adding High Performance Search to your Grails AppAdding High Performance Search to your Grails App
Adding High Performance Search to your Grails AppAdam Creeger
 

Similar to Mejorando las busquedas en nuestras aplicaciones web con elasticsearch (20)

Solr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance studySolr and Elasticsearch, a performance study
Solr and Elasticsearch, a performance study
 
The Power of Open Data
The Power of Open DataThe Power of Open Data
The Power of Open Data
 
Simplifying RESTful Search- Impetus Webinar
Simplifying RESTful Search- Impetus WebinarSimplifying RESTful Search- Impetus Webinar
Simplifying RESTful Search- Impetus Webinar
 
Working Of Search Engine
Working Of Search EngineWorking Of Search Engine
Working Of Search Engine
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The Future
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and Spark
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + Angular
 
Seminar report(rohitsahu cs 17 vth sem)
Seminar report(rohitsahu cs 17 vth sem)Seminar report(rohitsahu cs 17 vth sem)
Seminar report(rohitsahu cs 17 vth sem)
 
E-commerce Search Engine with Apache Lucene/Solr
E-commerce Search Engine with Apache Lucene/SolrE-commerce Search Engine with Apache Lucene/Solr
E-commerce Search Engine with Apache Lucene/Solr
 
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsInitial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
 
SemTech 2010: Pelorus Platform
SemTech 2010: Pelorus PlatformSemTech 2010: Pelorus Platform
SemTech 2010: Pelorus Platform
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
Apace Solr Web Development.pdf
Apace Solr Web Development.pdfApace Solr Web Development.pdf
Apace Solr Web Development.pdf
 
Role of Text Mining in Search Engine
Role of Text Mining in Search EngineRole of Text Mining in Search Engine
Role of Text Mining in Search Engine
 
Apace Solr Web Development.pdf
Apace Solr Web Development.pdfApace Solr Web Development.pdf
Apace Solr Web Development.pdf
 
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptx
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptxMastering-Salesforce-Development-A-Comprehensive-Overview (1).pptx
Mastering-Salesforce-Development-A-Comprehensive-Overview (1).pptx
 
Advanced full text searching techniques using Lucene
Advanced full text searching techniques using LuceneAdvanced full text searching techniques using Lucene
Advanced full text searching techniques using Lucene
 
Full text search
Full text searchFull text search
Full text search
 
How a search engine works report
How a search engine works reportHow a search engine works report
How a search engine works report
 
Adding High Performance Search to your Grails App
Adding High Performance Search to your Grails AppAdding High Performance Search to your Grails App
Adding High Performance Search to your Grails App
 

More from UllyCarolinneSampaio

Building Observable Infrastructure and Code
Building Observable Infrastructure and CodeBuilding Observable Infrastructure and Code
Building Observable Infrastructure and CodeUllyCarolinneSampaio
 
Usando elastic watcher y alerting module para preparar el bistec perfecto
Usando elastic watcher y alerting module para preparar el bistec perfectoUsando elastic watcher y alerting module para preparar el bistec perfecto
Usando elastic watcher y alerting module para preparar el bistec perfectoUllyCarolinneSampaio
 
Encontrar problemas con el uso de los agentes de APM
Encontrar problemas con el uso de los agentes de APMEncontrar problemas con el uso de los agentes de APM
Encontrar problemas con el uso de los agentes de APMUllyCarolinneSampaio
 
Manos a la obra "Hands on" con Elastic stack
Manos a la obra "Hands on" con Elastic stackManos a la obra "Hands on" con Elastic stack
Manos a la obra "Hands on" con Elastic stackUllyCarolinneSampaio
 
Primeros pasos con Kibana - Parte 2
Primeros pasos con Kibana - Parte 2Primeros pasos con Kibana - Parte 2
Primeros pasos con Kibana - Parte 2UllyCarolinneSampaio
 
[Vancouver] part 2 understanding the relevance of your search with elasticse...
[Vancouver] part 2  understanding the relevance of your search with elasticse...[Vancouver] part 2  understanding the relevance of your search with elasticse...
[Vancouver] part 2 understanding the relevance of your search with elasticse...UllyCarolinneSampaio
 
Primeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsPrimeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsUllyCarolinneSampaio
 
Vancouver part 1 intro to elasticsearch and kibana-beginner's crash course ...
Vancouver   part 1 intro to elasticsearch and kibana-beginner's crash course ...Vancouver   part 1 intro to elasticsearch and kibana-beginner's crash course ...
Vancouver part 1 intro to elasticsearch and kibana-beginner's crash course ...UllyCarolinneSampaio
 
What's new in Kibana - Elastic meetup
What's new in Kibana - Elastic meetupWhat's new in Kibana - Elastic meetup
What's new in Kibana - Elastic meetupUllyCarolinneSampaio
 
La importancia de la observabilidad con Elastic
La importancia de la observabilidad con ElasticLa importancia de la observabilidad con Elastic
La importancia de la observabilidad con ElasticUllyCarolinneSampaio
 
Enterprise search: search at scale
Enterprise search: search at scaleEnterprise search: search at scale
Enterprise search: search at scaleUllyCarolinneSampaio
 
Observando sistemas the información con Elastic APM
Observando sistemas the información con Elastic APMObservando sistemas the información con Elastic APM
Observando sistemas the información con Elastic APMUllyCarolinneSampaio
 

More from UllyCarolinneSampaio (18)

Building Observable Infrastructure and Code
Building Observable Infrastructure and CodeBuilding Observable Infrastructure and Code
Building Observable Infrastructure and Code
 
Usando elastic watcher y alerting module para preparar el bistec perfecto
Usando elastic watcher y alerting module para preparar el bistec perfectoUsando elastic watcher y alerting module para preparar el bistec perfecto
Usando elastic watcher y alerting module para preparar el bistec perfecto
 
Encontrar problemas con el uso de los agentes de APM
Encontrar problemas con el uso de los agentes de APMEncontrar problemas con el uso de los agentes de APM
Encontrar problemas con el uso de los agentes de APM
 
Manos a la obra "Hands on" con Elastic stack
Manos a la obra "Hands on" con Elastic stackManos a la obra "Hands on" con Elastic stack
Manos a la obra "Hands on" con Elastic stack
 
Primeros pasos con Kibana - Parte 2
Primeros pasos con Kibana - Parte 2Primeros pasos con Kibana - Parte 2
Primeros pasos con Kibana - Parte 2
 
[Vancouver] part 2 understanding the relevance of your search with elasticse...
[Vancouver] part 2  understanding the relevance of your search with elasticse...[Vancouver] part 2  understanding the relevance of your search with elasticse...
[Vancouver] part 2 understanding the relevance of your search with elasticse...
 
Primeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsPrimeros pasos con Logstash y Beats
Primeros pasos con Logstash y Beats
 
Primeros pasos con kibana parte 1
Primeros pasos con kibana parte 1Primeros pasos con kibana parte 1
Primeros pasos con kibana parte 1
 
Vancouver part 1 intro to elasticsearch and kibana-beginner's crash course ...
Vancouver   part 1 intro to elasticsearch and kibana-beginner's crash course ...Vancouver   part 1 intro to elasticsearch and kibana-beginner's crash course ...
Vancouver part 1 intro to elasticsearch and kibana-beginner's crash course ...
 
What's new in Kibana - Elastic meetup
What's new in Kibana - Elastic meetupWhat's new in Kibana - Elastic meetup
What's new in Kibana - Elastic meetup
 
Primeros pasos con elasticsearch
Primeros pasos con elasticsearchPrimeros pasos con elasticsearch
Primeros pasos con elasticsearch
 
La importancia de la observabilidad con Elastic
La importancia de la observabilidad con ElasticLa importancia de la observabilidad con Elastic
La importancia de la observabilidad con Elastic
 
Logstash filebeat webinar
Logstash filebeat webinar  Logstash filebeat webinar
Logstash filebeat webinar
 
Enterprise search: search at scale
Enterprise search: search at scaleEnterprise search: search at scale
Enterprise search: search at scale
 
Beats a-tus-datos
Beats a-tus-datosBeats a-tus-datos
Beats a-tus-datos
 
Enterprise search solutions
Enterprise search solutionsEnterprise search solutions
Enterprise search solutions
 
Why upgrade to v7.7
Why upgrade to v7.7Why upgrade to v7.7
Why upgrade to v7.7
 
Observando sistemas the información con Elastic APM
Observando sistemas the información con Elastic APMObservando sistemas the información con Elastic APM
Observando sistemas the información con Elastic APM
 

Recently uploaded

Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...drm1699
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckMarc Lester
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringPrakhyath Rai
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmuxevmux96
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdfSelfMade bd
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationElement34
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 

Recently uploaded (20)

Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 

Mejorando las busquedas en nuestras aplicaciones web con elasticsearch

  • 2. ABOUT ME Ruby on Rails Developer Leandro Domínguez Rootstrap Improving App Searches with ElasticSearch
  • 3. ABOUT ME Rootstrap Improving App Searches with ElasticSearch
  • 4. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 5. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 6. Search engine NoSQL Database Based on Lucene WHAT IS ELASTICSEARCH Open Source, written in Java API REST via JSON Scalable Really fast Rootstrap Improving App Searches with ElasticSearch
  • 7. Rootstrap Improving App Searches with ElasticSearch ELK Stack Collect and Transform Search and Analyze Visualize and Manage
  • 8. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 9. SOME COMPANIES THAT USE ELASTICSEARCH Rootstrap Improving App Searches with ElasticSearch
  • 11. WHEN CAN WE USE IT? Rootstrap Improving App Searches with ElasticSearch
  • 12. e-commerce WHEN CAN WE USE IT? Rootstrap Improving App Searches with ElasticSearch
  • 13. WHEN CAN WE USE IT? Rootstrap Improving App Searches with ElasticSearch
  • 14. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 15. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS - Text analyzers and tokenizers - Indexes Rootstrap Improving App Searches with ElasticSearch
  • 16. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS - Text analyzers and tokenizers - Indexes Rootstrap Improving App Searches with ElasticSearch
  • 17. HOW DOES IT WORK? Text analyzers & tokenizers Configuring built-in analyzers Fingerprint Analyzer Keyword Analyzer Language Analyzers Pattern Analyzer Simple Analyzer Standard Analyzer Stop Analyzer Whitespace Analyzer Custom Analyzer Char Group Tokenizer Classic Tokenizer Edge n-gram tokenizer Limitations of the max_g ram parameter Keyword Tokenizer Letter Tokenizer Lowercase Tokenizer N-gram tokenizer Path Hierarchy Tokenize Path Hierarchy Tokenizer Example Pattern Tokenizer Simple Pattern Tokenizer Simple Pattern Split Tokenizer Standard Tokenizer Thai Tokenizer UAX URL Email Tokenizer Whitespace Tokenizer Analyzers Tokenizers Rootstrap Improving App Searches with ElasticSearch
  • 18. Text analyzers & tokenizers HOW DOES IT WORK? ≠ Agenad telefónica. De 2018 Agenda de teléfonos 2018 Rootstrap Improving App Searches with ElasticSearch
  • 19. Text analyzers HOW DOES IT WORK? Rootstrap Improving App Searches with ElasticSearch Agenad telefónica. De 2018 Lowercase agenad telefónica. de 2018 Charfilter agenad telefonica. de 2018 Tokenizer agenad telefonica de 2018 Stopwords agenad telefonica 2018 “Fuzzy” agenda telefonica 2018 Stemmer agend telef 2018 agenda de telefonos 2018 Lowercase agenda de telefonos 2018 Charfilter agenda de telefonos 2018 Tokenizer agenda de telefonos 2018 Stopwords agenda telefonos 2018 Stemmer agend telef 2018
  • 20. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS - Text analyzers and tokenizers - Indexes Rootstrap Improving App Searches with ElasticSearch
  • 21. ID Description 1 Here is a text 2 Another text here 3 A yey here HOW DOES IT WORK? Direct Index Rootstrap Improving App Searches with ElasticSearch
  • 22. ID Description 1 Here is a text 2 Another text here 3 A yey here HOW DOES IT WORK? Direct Index text Rootstrap Improving App Searches with ElasticSearch
  • 23. ID Description 1 Here is a text 2 Another text here 3 A yey here HOW DOES IT WORK? Direct Index SELECT * FROM model WHERE * LIKE '%text%' Rootstrap Improving App Searches with ElasticSearch text
  • 24. Key ID here 1, 2, 3 is 1 a 1, 3 text 1, 2 another 2 yey 3 ID Description 1 Here is a text 2 Another text here 3 A yey here HOW DOES IT WORK? Inverted Index Rootstrap Improving App Searches with ElasticSearch text
  • 25. Key ID here 1,1, 2,3, 3,3 is 1, 2 a 1, 3, 3, 1 text 1,4, 2,2 another 2,1 yey 3,2 ID Description 1 Here is a text 2 Another text here 3 A yey here HOW DOES IT WORK? Inverted Index Rootstrap Improving App Searches with ElasticSearch
  • 27. - Document - Index - Shards - Node - Cluster - Replica HOW DOES IT WORK? Some things we should know Rootstrap Improving App Searches with ElasticSearch
  • 28. SQL Elasticsearch Table Index Row Document Schema Implicit Database Cluster HOW DOES IT WORK? SQL vs ElasticSearch Rootstrap Improving App Searches with ElasticSearch
  • 29. How does it work? / API REST
  • 30. HOW DOES IT WORK? / API REST Rootstrap Improving App Searches with ElasticSearch
  • 31. Request HOW DOES IT WORK? / API REST Creating Our First Index Response Rootstrap Improving App Searches with ElasticSearch markets
  • 32. HOW DOES IT WORK? / REST Adding our first document Request Response Rootstrap Improving App Searches with ElasticSearch
  • 33. Showing doc HOW DOES IT WORK? / REST Request Response Rootstrap Improving App Searches with ElasticSearch
  • 34. Type Inference HOW DOES IT WORK? / REST Request Response Rootstrap Improving App Searches with ElasticSearch
  • 35. Request Response Type Inference HOW DOES IT WORK? / REST Rootstrap Improving App Searches with ElasticSearch
  • 36. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 37. Searching doc QUERIES & FILTERS / SEARCH Request Extra params Response
  • 38. Boosting results QUERIES & FILTERS / SEARCH
  • 39. What is Elasticsearch?01 When can we use it?02 How does it work?03 Queries & Filters04 Sample app in Rails05 CONTENTS Rootstrap Improving App Searches with ElasticSearch
  • 40. elasticsearch-model elasticsearch-rails SAMPLE RAILS APP / GEMS Rootstrap Improving App Searches with ElasticSearch
  • 41. SAMPLE RAILS APP / GEMS Rootstrap Improving App Searches with ElasticSearch
  • 42. Rootstrap Improving App Searches with ElasticSearch CONCLUSIONS Advantages Disadvantages Faster and better searches Scalable More availability Indexing implies extra time Learn new API language More resources
  • 45. Sample Rails App / Gems Bonsai Rootstrap Improving App Searches with ElasticSearch
  • 46. Sample Rails App / Gems Rootstrap Improving App Searches with ElasticSearch