Moving from FAST to Solr on ATG
Ricardo Merizalde
Software Development Manager
Backcountry.com
Who We Are
§  Online	
  retailer	
  of	
  high-­‐end	
  outdoor	
  gear	
  
§  Founded	
  in	
  1996	
  by	
  former	
  Olympic	
  skier	
  
§  7	
  Ecommerce	
  sites	
  
§  Internet	
  Retailer	
  Top	
  100	
  
	
  
“We use the gear we sell”
More Background
§ Legacy	
  Perl/Postgres	
  ecommerce	
  plaEorm	
  
§ Using	
  FAST	
  Impulse/ESP	
  since	
  2008	
  
§ Implemented	
  Oracle/ATG	
  Commerce	
  in	
  2012	
  
§ 1.5MM	
  daily	
  search	
  engine	
  hits	
  during	
  Q4	
  
2012	
  
	
  
Why change search engines?
§ Product	
  End	
  of	
  Life	
  	
  
§ Index	
  latency	
  
§ Hardware	
  footprint	
  	
  
§ License	
  limitaUons	
  	
  
§ Support	
  effort	
  is	
  high	
  
§ Not	
  a	
  good	
  fit	
  for	
  conUnuous	
  delivery	
  	
  
Goals
§ Low	
  index	
  latency	
  
§ High	
  availability	
  
§ Easy	
  to	
  scale	
  
§ ConUnuous	
  delivery	
  
§ Improve	
  user	
  experience	
  
§ Improve	
  merchandising	
  tools	
  
	
  
OpenCommerceSearch
What’s OpenCommerceSearch?
§ Oracle	
  ATG/Solr	
  IntegraUon	
  
§ Search	
  Module:	
  Business	
  Tools	
  
§ Framework	
  to	
  ease	
  development	
  
	
  
Integration Overview
Each environment has its own collections
Search Module
§  Manage	
  search	
  assets	
  
•  Facets	
  
•  Redirects	
  
•  Synonym	
  Lists	
  &	
  Synonyms	
  
•  Boosts	
  &	
  Blocks	
  
•  Ranking	
  Rules	
  
§  Rule	
  engine	
  uses	
  Solr	
  
•  Has	
  its	
  own	
  index	
  (very	
  small)	
  
•  Extra	
  search	
  call	
  to	
  get	
  rules	
  (fast	
  &	
  
cacheable)	
  
	
  
Search Module
Search Module
Search Module
§  Rule’s	
  context	
  
•  Target	
  Page:	
  Search,	
  Category	
  or	
  All	
  Pages	
  
•  Query:	
  shirts,	
  [the	
  north	
  face]	
  
•  MulU-­‐site	
  aware	
  
•  Catalog	
  aware	
  
•  Category	
  aware	
  	
  
§  Rule’s	
  life	
  Ume	
  
•  Start	
  &	
  End	
  Date	
  
Search Module
§  Rule’s	
  custom	
  properUes	
  
Search Module
§  Ranking	
  rules	
  
•  Boost/demote	
  chunks	
  of	
  products	
  instead	
  of	
  
individual	
  products	
  
•  Less	
  manual	
  boosUng	
  
•  Ideal	
  state	
  is	
  lidle/no	
  manual	
  boosUng.	
  Use	
  
mulUple	
  data	
  points	
  to	
  automate	
  ranking	
  
(clicks,	
  revenue,	
  etc.)	
  	
  
•  Uses	
  boost	
  funcUons	
  
	
  
Search Module
Search Module
Search Module
Search Module
§  Rule	
  based	
  categories	
  
•  PromoUon	
  landing	
  pages	
  
•  Keyword	
  landing	
  pages	
  
•  Price	
  range,	
  discount	
  off,	
  gender,	
  hand	
  pick	
  
products,	
  etc.	
  
Search Module
Search Module
§  Asset	
  MigraUon	
  
•  Redirects:	
  imported	
  as	
  exact	
  matches	
  
•  Synonyms:	
  manual	
  cleanup	
  
•  Boosts	
  &	
  Blocks:	
  not	
  imported	
  
•  Facets:	
  	
  not	
  imported	
  
§  Query	
  Synonyms	
  
•  FAST	
  is	
  a	
  black	
  box	
  
•  Analysis	
  Tool	
  
•  Synonym-­‐Expanding	
  EDisMax	
  Parser	
  wriden	
  
by	
  Nolan	
  Lawson	
  
Who We Are
Index Latency	
  
Index Latency
§  Feed	
  limited	
  to	
  XML	
  feed/exlt	
  tool	
  
§  Slow	
  process	
  with	
  mulUple	
  points	
  of	
  
failure	
  
1.  Generate	
  XML	
  files	
  
2.  scp	
  XML	
  files	
  to	
  FAST	
  servers	
  
3.  exlt	
  cronjob	
  loads	
  feed	
  into	
  SQL	
  schema	
  
4.  JDBC	
  Connector	
  checking	
  for	
  changes	
  
5.  Document	
  Processing	
  Pipeline	
  
6.  Index	
  documents	
  
Index Latency
§  Index	
  documents	
  using	
  API	
  calls	
  
§  Different	
  SLAs	
  for	
  change	
  types	
  (price,	
  
inventory,	
  content,	
  taxonomy)	
  
§  Auto	
  soj	
  &	
  hard	
  commits	
  
§  Products	
  &	
  Skus	
  are	
  not	
  versioned	
  
	
  
Index Latency
Who We Are
ConUnuous	
  Delivery	
  
Continuous Delivery
§  Hard	
  to	
  do	
  integraUon	
  tesUng	
  
§  Automated	
  	
  tests	
  were	
  flaky	
  
•  Data	
  dependencies	
  
•  No	
  applicaUons	
  states	
  
§  Leverage	
  EmbeddedSolrServer	
  
•  RAM	
  index	
  
•  Custom	
  JUnit	
  Test	
  Runner	
  for	
  IntegraUon	
  
tests	
  
•  Solr	
  XML	
  for	
  data	
  
•  TestNG	
  &	
  Selenium	
  for	
  Automated	
  tests	
  
	
  
Continuous Delivery
§  IntegraUon	
  Test	
  
•  Shared	
  core	
  with	
  bootstrapped	
  data	
  
•  Clone	
  core	
  &	
  index	
  test	
  data	
  
•  Test	
  code	
  &	
  server	
  run	
  within	
  same	
  process	
  
Continuous Delivery
§  Automated	
  Test	
  
•  Cores	
  live	
  within	
  applicaUon	
  server	
  
•  Test	
  data	
  sent	
  over	
  HTTP	
  
	
  
Continuous Delivery
§  Deployments	
  
	
  
Continuous Delivery
§  Rundeck	
  jobs	
  
	
  
User	
  Experience	
  
User Experience
§  Search	
  results	
  not	
  consistent	
  with	
  
product	
  detail	
  page	
  
§  De-­‐normalize	
  data	
  &	
  index	
  skus	
  
§  Group	
  by	
  product	
  id	
  
User Experience
User Experience
User Experience
§  Orange	
  jacket	
  not	
  available	
  in	
  XXL	
  
User Experience
User Experience
§  Orange	
  jacket	
  available	
  in	
  XXL	
  
User Experience
§  Grouping	
  is	
  awesome	
  but	
  is	
  CPU	
  
intensive	
  
§  Monitor	
  query	
  response	
  Umes	
  
§  Pay	
  adenUon	
  to	
  parUal	
  match	
  search	
  (use	
  
mm	
  parameter)	
  
§  Use	
  the	
  facets	
  you	
  really	
  need	
  
User Experience
QuesUons	
  
CONTACT
Ricardo Merizalde
rmerizalde@backcountry.com
https://github.com/rmerizalde/opencommercesearch
http://ricardomerizalde.blogspot.com/

More Related Content

PPTX
SenchaCon Roadshow Irvine 2017
PDF
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
PPTX
Test driving Azure Search and DocumentDB
PDF
PPTX
Site speed Server Optimization
PPTX
Rev Your Engines - SharePoint Performance Best Practices
PDF
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
PPTX
Design for scale
SenchaCon Roadshow Irvine 2017
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
Test driving Azure Search and DocumentDB
Site speed Server Optimization
Rev Your Engines - SharePoint Performance Best Practices
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
Design for scale

What's hot (18)

PDF
Scaling Plugins in Critical Systems - Jon Mort
PDF
Automated testing APEX Applications
PPTX
[Kapič] Why You Should (Not) Probably Care about Machine Learning
PPTX
Building Enterprise Search Engines using Open Source Technologies
PPTX
Rev Your Engines - SharePoint Performance Enhancements
PDF
Building Search Engines - Lucene, SolR and Elasticsearch
PDF
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
PPTX
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
PPTX
I5 - Bring yourself up to speed with power shell
PDF
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
PDF
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
PPTX
Episerver and search engines
PDF
Moving to the APEX Listener
PPTX
Elastic & Azure & Episever, Case Evira
PDF
Berlin Selenium Meetup - Galen Framework
PPTX
05 managing transactions
PPTX
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
PPTX
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Scaling Plugins in Critical Systems - Jon Mort
Automated testing APEX Applications
[Kapič] Why You Should (Not) Probably Care about Machine Learning
Building Enterprise Search Engines using Open Source Technologies
Rev Your Engines - SharePoint Performance Enhancements
Building Search Engines - Lucene, SolR and Elasticsearch
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
I5 - Bring yourself up to speed with power shell
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Episerver and search engines
Moving to the APEX Listener
Elastic & Azure & Episever, Case Evira
Berlin Selenium Meetup - Galen Framework
05 managing transactions
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
Владимир Бронников (Senior .NET Developer, Perfectial) “Performance optimizat...
Ad

Viewers also liked (14)

DOCX
Implementation of finite volume method in creeping flow around a circular cyl...
PPTX
La comunicación masiva
PPTX
Innholdsmarkedsføring i et tradisjonelt mediehus
PDF
Förnuft och känsla i framtidens upplevelser
PDF
Contents Page Font Amendments
PDF
Solr At Scale For Time-Oriented Data: Presented by Brett Hoerner, Rocana
PDF
Hva vi tror på i 2016
PDF
Morgenbriefing: Find forretningsmodellen til kundens tidsalder
PDF
Creuna-dagen Havrommet
PDF
Webinar: What's New in Solr 6
PDF
React Native GUIDE
PDF
Session W2 - Delay Claims and Analysis Based on FIDIC Forms of Contract
PDF
Cross Datacenter Replication in Apache Solr 6
PDF
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Implementation of finite volume method in creeping flow around a circular cyl...
La comunicación masiva
Innholdsmarkedsføring i et tradisjonelt mediehus
Förnuft och känsla i framtidens upplevelser
Contents Page Font Amendments
Solr At Scale For Time-Oriented Data: Presented by Brett Hoerner, Rocana
Hva vi tror på i 2016
Morgenbriefing: Find forretningsmodellen til kundens tidsalder
Creuna-dagen Havrommet
Webinar: What's New in Solr 6
React Native GUIDE
Session W2 - Delay Claims and Analysis Based on FIDIC Forms of Contract
Cross Datacenter Replication in Apache Solr 6
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Ad

Similar to CommerceSearch: Moving from FAST to Solr on ATG (20)

PPTX
Load testing with Visual Studio and Azure - Andrew Siemer
PPTX
What is an Automation Framework ?
PDF
How to Automate your Enterprise Application / ERP Testing
PPTX
Cloud Design Patterns - Hong Kong Codeaholics
PPTX
Deep-Dive to Azure Search
PPTX
Cloud patterns at Carleton University
PPTX
8 cloud design patterns you ought to know - Update Conference 2018
PDF
Test Automation for Data Warehouses
PPTX
Getting started with Laravel & Elasticsearch
PPT
Lucene Bootcamp - 2
PDF
Apache Solr Search Course Drupal 7 Acquia
PPTX
Spcua 2013 Alexey Kozhemiakin Enterprise Search
PDF
Introducing the Applitools Self Healing Execution Cloud.pdf
PPTX
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
PDF
Breaking data
PDF
Streamline it management
PDF
Machine Learning Operations Cababilities
PPT
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
PDF
Performance tuning Grails applications
PPTX
Performance Assurance for Packaged Applications
Load testing with Visual Studio and Azure - Andrew Siemer
What is an Automation Framework ?
How to Automate your Enterprise Application / ERP Testing
Cloud Design Patterns - Hong Kong Codeaholics
Deep-Dive to Azure Search
Cloud patterns at Carleton University
8 cloud design patterns you ought to know - Update Conference 2018
Test Automation for Data Warehouses
Getting started with Laravel & Elasticsearch
Lucene Bootcamp - 2
Apache Solr Search Course Drupal 7 Acquia
Spcua 2013 Alexey Kozhemiakin Enterprise Search
Introducing the Applitools Self Healing Execution Cloud.pdf
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
Breaking data
Streamline it management
Machine Learning Operations Cababilities
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Performance tuning Grails applications
Performance Assurance for Packaged Applications

More from lucenerevolution (20)

PDF
Text Classification Powered by Apache Mahout and Lucene
PDF
State of the Art Logging. Kibana4Solr is Here!
PDF
Search at Twitter
PDF
Building Client-side Search Applications with Solr
PDF
Integrate Solr with real-time stream processing applications
PDF
Scaling Solr with SolrCloud
PDF
Administering and Monitoring SolrCloud Clusters
PDF
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
PDF
Using Solr to Search and Analyze Logs
PDF
Enhancing relevancy through personalization & semantic search
PDF
Real-time Inverted Search in the Cloud Using Lucene and Storm
PDF
Solr's Admin UI - Where does the data come from?
PDF
Schemaless Solr and the Solr Schema REST API
PDF
High Performance JSON Search and Relational Faceted Browsing with Lucene
PDF
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
PDF
Faceted Search with Lucene
PDF
Recent Additions to Lucene Arsenal
PDF
Turning search upside down
PDF
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
PDF
Shrinking the haystack wes caldwell - final
Text Classification Powered by Apache Mahout and Lucene
State of the Art Logging. Kibana4Solr is Here!
Search at Twitter
Building Client-side Search Applications with Solr
Integrate Solr with real-time stream processing applications
Scaling Solr with SolrCloud
Administering and Monitoring SolrCloud Clusters
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Using Solr to Search and Analyze Logs
Enhancing relevancy through personalization & semantic search
Real-time Inverted Search in the Cloud Using Lucene and Storm
Solr's Admin UI - Where does the data come from?
Schemaless Solr and the Solr Schema REST API
High Performance JSON Search and Relational Faceted Browsing with Lucene
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Faceted Search with Lucene
Recent Additions to Lucene Arsenal
Turning search upside down
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Shrinking the haystack wes caldwell - final

Recently uploaded (20)

PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Architecture types and enterprise applications.pdf
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
Modernising the Digital Integration Hub
PPT
Geologic Time for studying geology for geologist
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
2018-HIPAA-Renewal-Training for executives
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Configure Apache Mutual Authentication
PDF
Five Habits of High-Impact Board Members
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Architecture types and enterprise applications.pdf
Abstractive summarization using multilingual text-to-text transfer transforme...
sustainability-14-14877-v2.pddhzftheheeeee
Modernising the Digital Integration Hub
Geologic Time for studying geology for geologist
CloudStack 4.21: First Look Webinar slides
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
NewMind AI Weekly Chronicles – August ’25 Week III
2018-HIPAA-Renewal-Training for executives
A contest of sentiment analysis: k-nearest neighbor versus neural network
A review of recent deep learning applications in wood surface defect identifi...
Getting started with AI Agents and Multi-Agent Systems
Configure Apache Mutual Authentication
Five Habits of High-Impact Board Members
A proposed approach for plagiarism detection in Myanmar Unicode text
Enhancing emotion recognition model for a student engagement use case through...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
UiPath Agentic Automation session 1: RPA to Agents
OpenACC and Open Hackathons Monthly Highlights July 2025

CommerceSearch: Moving from FAST to Solr on ATG