SlideShare a Scribd company logo
1 of 20
Download to read offline
1
www.oroinc.com
Oro Tech Talks:
Advanced Search
with Elasticsearch
www.oroinc.com
About Me
Yevhen Shyshkin
10+ years experience in
E-Commerce development
Architectural Advisor
Project Lead
Technical Trainer
Search Component Lead
twitter.com/yshyshkin github.com/yshyshkin
aspirationandadvisory.com
www.oroinc.com
What is Advanced Search?
Make results more relevant
Discover user preferences
Improve user experience
Tolerate errors and typos
And your any other wish…
www.oroinc.com
Elasticsearch: Advanced Search Tool
Search engine based on Lucene
NoSQL DBMS
Extensive search capabilities
Software and hardware tuning
Cluster support
Good for Big Data
Multiple clients: Java, C#, PHP, Python
www.oroinc.com
Elasticsearch in OroCommerce
Relevance boost
Synonyms
Error-tolerance
Search fine tuning
Autocomplete
Faceted search
Customization
+
www.oroinc.com
Relevance Boost: Theory
Full-text search
Search score (rating)
Default sorting
Show relevant result first
Boost increases score
Promote specific results
www.oroinc.com
Relevance Boost: Implementation
"should": [
{
"match": {
"sku.analyzed": {
"query": "lamp",
"operator": "or",
"boost": 5
}
}
},
{
"match": {
"sku.analyzed_exact_match": {
"query": "lamp",
"operator": "or",
"boost": 50
}
}
}
]
Multi-fields >>
Different analyzers >>
Boolean query >>
www.oroinc.com
Relevance Boost: Examples
Boost by exact match >>
Boost by entity name >>
Boost by product attributes >>
Boost by customer history >>
How to use them together
www.oroinc.com
Relevance Boost: What’s next?
Customer segment preferences
Machine learning
Pricing
Inventory
Reviews
www.oroinc.com
Synonyms: Use Cases
Synonyms
Abbreviations
Suggestions
Typos
Mistakes
Slang
www.oroinc.com
Synonyms: Implementation
Search analyzer
Synonym filter >>
Refresh index settings >>
Direction of replacement
"filter": {
"synonym": {
"type": "synonym_graph",
"synonyms": [
"light, сяйво",
"cabinet, комод"
]
},
"wordsplit_lowercase_synonym": {
"type": "multiplexer",
"filters": [
"wordsplit, lowercase",
"lowercase, synonym"
]
}
},
"analyzer": {
"fulltext_search_analyzer": {
"filter": [
"wordsplit_lowercase_synonym",
"unique"
],
"tokenizer": "whitespace"
}
}
www.oroinc.com
Synonyms: Examples
Bidirectional synonyms
Unidirectional synonyms
Regular abbreviations
Word shortening
www.oroinc.com
Error-tolerance: Basics
Tolerage minor errors
Ignore typos
Not an autocorrection
www.oroinc.com
Error-tolerance: Implementation
Fuzzy matching >>
One or two errors per word >>
The first letter is always correct
Minimum word length >>
Exclusion pattern >>
{
"match": {
"all_text_1.analyzed": {
"query": "ligt",
"operator": "and",
"boost": 1,
"fuzziness": 1,
"prefix_length": 1
}
}
},
{
"match": {
"all_text_1.analyzed": {
"query": "bubl",
"operator": "and",
"boost": 1,
"fuzziness": 1,
"prefix_length": 1
}
}
}
www.oroinc.com
Error-tolerance: Examples
Typos
One or two errors
Exclude SKU
www.oroinc.com
Customization: Basics
Data level
Query level
www.oroinc.com
Customization: Data Level
Add new data
New field
Global search text field
Events
PrepareEntityMapEvent >>
IndexEntityEvent >>
www.oroinc.com
Customization: Query Level
Request builders >>
Decorate existing builder
Create new builder
Events
BeforeSearchEvent (standard) >>
BeforeSearchEvent (website) >>
www.oroinc.com
Documentation
Search index architecture >>
Fine-tuning >>
Elasticsearch guide >>
Elasticsearch forum >>
www.oroinc.com
Q&A

More Related Content

Similar to Advanced Search with Elasticsearch in OroCommerce

Search Engine Optimization (SEO) 101
Search Engine Optimization (SEO) 101Search Engine Optimization (SEO) 101
Search Engine Optimization (SEO) 101pointit
 
Search Quality Management
Search Quality ManagementSearch Quality Management
Search Quality ManagementAgnes Molnar
 
Website redesign & seo Anand Saini
Website redesign & seo Anand SainiWebsite redesign & seo Anand Saini
Website redesign & seo Anand SainiDr,Saini Anand
 
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...goodfriday
 
Understanding & Using Search Engine Optimization
Understanding & Using Search Engine OptimizationUnderstanding & Using Search Engine Optimization
Understanding & Using Search Engine OptimizationifPeople
 
How To Use AI To Enhance Your SEO & Create Better Content
How To Use AI To Enhance Your SEO & Create Better ContentHow To Use AI To Enhance Your SEO & Create Better Content
How To Use AI To Enhance Your SEO & Create Better ContentSearch Engine Journal
 
SEO Social Blog: SEO Training 2010 From SEOmoz
SEO Social Blog:  SEO Training 2010 From SEOmoz SEO Social Blog:  SEO Training 2010 From SEOmoz
SEO Social Blog: SEO Training 2010 From SEOmoz SEO Social Blog
 
Introduction to SEO
Introduction to SEOIntroduction to SEO
Introduction to SEORand Fishkin
 
Seo training-2010-100818134052-phpapp02 (1)
Seo training-2010-100818134052-phpapp02 (1)Seo training-2010-100818134052-phpapp02 (1)
Seo training-2010-100818134052-phpapp02 (1)Dharmendra Patel
 
Search Enginge Optimization: SEOmoz
Search Enginge Optimization: SEOmozSearch Enginge Optimization: SEOmoz
Search Enginge Optimization: SEOmozmbragi
 
Build Your Own Search Engine
Build Your Own Search EngineBuild Your Own Search Engine
Build Your Own Search Enginegoodfriday
 
SEO TRAINING WITH LIVE PROJECT
SEO TRAINING WITH LIVE PROJECT SEO TRAINING WITH LIVE PROJECT
SEO TRAINING WITH LIVE PROJECT 3 mcs
 
#SPSPhilly search topology & optimization
#SPSPhilly search topology & optimization#SPSPhilly search topology & optimization
#SPSPhilly search topology & optimizationMike Maadarani
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in ChandigarhDestiny Searcher
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in ChandigarhRaj Yadav
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in ChandigarhSunil Yadav
 

Similar to Advanced Search with Elasticsearch in OroCommerce (20)

Search Engine Optimization (SEO) 101
Search Engine Optimization (SEO) 101Search Engine Optimization (SEO) 101
Search Engine Optimization (SEO) 101
 
Search Quality Management
Search Quality ManagementSearch Quality Management
Search Quality Management
 
Website redesign & seo Anand Saini
Website redesign & seo Anand SainiWebsite redesign & seo Anand Saini
Website redesign & seo Anand Saini
 
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...
Artificial Artificial Intelligence: Using Amazon Mechanical Turk and .NET to ...
 
Understanding & Using Search Engine Optimization
Understanding & Using Search Engine OptimizationUnderstanding & Using Search Engine Optimization
Understanding & Using Search Engine Optimization
 
How To Use AI To Enhance Your SEO & Create Better Content
How To Use AI To Enhance Your SEO & Create Better ContentHow To Use AI To Enhance Your SEO & Create Better Content
How To Use AI To Enhance Your SEO & Create Better Content
 
SEO Social Blog: SEO Training 2010 From SEOmoz
SEO Social Blog:  SEO Training 2010 From SEOmoz SEO Social Blog:  SEO Training 2010 From SEOmoz
SEO Social Blog: SEO Training 2010 From SEOmoz
 
Introduction to SEO
Introduction to SEOIntroduction to SEO
Introduction to SEO
 
Seo training-2010-100818134052-phpapp02 (1)
Seo training-2010-100818134052-phpapp02 (1)Seo training-2010-100818134052-phpapp02 (1)
Seo training-2010-100818134052-phpapp02 (1)
 
Search Enginge Optimization: SEOmoz
Search Enginge Optimization: SEOmozSearch Enginge Optimization: SEOmoz
Search Enginge Optimization: SEOmoz
 
SEO MARKETING TRAINING
SEO MARKETING TRAININGSEO MARKETING TRAINING
SEO MARKETING TRAINING
 
Build Your Own Search Engine
Build Your Own Search EngineBuild Your Own Search Engine
Build Your Own Search Engine
 
iWeb and SEO
iWeb and SEOiWeb and SEO
iWeb and SEO
 
SEO Benchmark
SEO BenchmarkSEO Benchmark
SEO Benchmark
 
SEO TRAINING WITH LIVE PROJECT
SEO TRAINING WITH LIVE PROJECT SEO TRAINING WITH LIVE PROJECT
SEO TRAINING WITH LIVE PROJECT
 
Seo Training
Seo TrainingSeo Training
Seo Training
 
#SPSPhilly search topology & optimization
#SPSPhilly search topology & optimization#SPSPhilly search topology & optimization
#SPSPhilly search topology & optimization
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in Chandigarh
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in Chandigarh
 
SEO Training in Chandigarh
SEO Training in ChandigarhSEO Training in Chandigarh
SEO Training in Chandigarh
 

More from Yevhen Shyshkin

Development Guide for Beginners
Development Guide for BeginnersDevelopment Guide for Beginners
Development Guide for BeginnersYevhen Shyshkin
 
E-Commerce search with Elasticsearch
E-Commerce search with ElasticsearchE-Commerce search with Elasticsearch
E-Commerce search with ElasticsearchYevhen Shyshkin
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesYevhen Shyshkin
 
OroPlatform and OroCRM from a developer's perspective
OroPlatform and OroCRM from a developer's perspectiveOroPlatform and OroCRM from a developer's perspective
OroPlatform and OroCRM from a developer's perspectiveYevhen Shyshkin
 
Data Localization and Translation
Data Localization and TranslationData Localization and Translation
Data Localization and TranslationYevhen Shyshkin
 

More from Yevhen Shyshkin (7)

Development Guide for Beginners
Development Guide for BeginnersDevelopment Guide for Beginners
Development Guide for Beginners
 
E-Commerce search with Elasticsearch
E-Commerce search with ElasticsearchE-Commerce search with Elasticsearch
E-Commerce search with Elasticsearch
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
OroPlatform and OroCRM from a developer's perspective
OroPlatform and OroCRM from a developer's perspectiveOroPlatform and OroCRM from a developer's perspective
OroPlatform and OroCRM from a developer's perspective
 
Transactions etc
Transactions etcTransactions etc
Transactions etc
 
Data Localization and Translation
Data Localization and TranslationData Localization and Translation
Data Localization and Translation
 
Oro Workflows
Oro WorkflowsOro Workflows
Oro Workflows
 

Recently uploaded

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Advanced Search with Elasticsearch in OroCommerce