Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Dell.com Search Story: Products, Support, C...

Elastic Co
March 08, 2017

The Dell.com Search Story: Products, Support, Commerce, and Relevancy

Dell.com shares how they transformed their search platform from a high-touch, targeted experience into a single Elasticsearch-powered responsive and multi-lingual experience. They also share how Elasticsearch collects and analyzes user events, such as click tracking and overall user interaction, and more.

Luis Bocaletti l Software Architect l Dell, Inc.
Rich Claice l Senior Principal Engineer l Dell, Inc.

Elastic Co

March 08, 2017
Tweet

More Decks by Elastic Co

Other Decks in Technology

Transcript

  1. Dell Technologies 8 March 2017 Products, Support, Commerce, and Relevancy:

    The Story Behind Search on Dell.com Luis Bocaletti Rich Claice
  2. 4 Agenda • About Dell - Our Journey • elasticsearch

    and Dell (Why) • What/Why/How – Using elasticsearch • Q&A
  3. 6 Dell Transformation • Only Configurable systems – “dude your

    getting a dell” • Support/Warranty/Parts • Peripherals • Search
  4. 7 Global dell.com (Search) • Transactional/Premier/Seller/Solutions • Products (Dell/EMC/3rd Party)

    • Support (Drivers, Knowledgebase, Manuals, Videos, Solutions) • Company Information • 60+ Countries • 21+ Languages • 1.5M Search/Day
  5. 8 Dell Search User Experience Analytics Content/Index • Search Box

    • Suggestions • Navigation • Filtering • Answers • Product, Support, Company Information Results • Click Tracking • Dashboards • Feedback • Linguistic Processing • Indexing Platform • Templates (localized) • Operations Content(Direct) Operations • Configuration and Management • Measurement • Promotion
  6. 9 Users of Search ISR’s (Internal sales representatives) TSR’s (Technical

    sales representatives) End Consumers from Dell.com Premier Customers External Channel Partners Search
  7. 10 Why Elastic • It just works • Local, dev,

    integration, production • Re-index api • When I fail I can fail fast and fix fast (locally) • Dynamic schema, index aliases • Progress not Perfection (agile, life happens) • Compelling reason for change doesn’t have to hurt
  8. 11 Elastic Search Cluster Load Balancer Master Node Query and

    Data Node Data Node Each Server: 24GB RAM, 16 Core, 2TB HDD Windows Servers Physical servers Data Center 1 Data Center 2
  9. 12 High Level Features • Identifying entities from a user

    query in 21 languages including CJK • Includes query understanding entity identification like: brand name, product name, support, knowledge base, manuals, products (laptops, desktops, tablets, servers) or SNP (speakers, projectors, batteries, printers, games, bags, TV’s and many more. • Also includes linguistics features like spellcheck, synonym, lemmatization, override stemmer.
  10. 14 Backend processes for generating dictionaries For each language Get

    data from 5 different master sources • Product Category Code and Product Category name mappings • Product Code and Product name mappings • Brand Code and Brand name mappings • And so on…… Massage data (strip special characters, breakline in special cases, format in dictionary entry format) Deploy dictionaries across all elastic servers Sample line in dictionary: optiplex 7020=> OptiPlex.7020=productmatch.opti plex-7020- desktop###systemscatmatch.optip lex-desktops Approx. 30K lines in each dictionary
  11. 15 Index Setup for English Language "analyzer": { "analyzer_en": {

    "type": "custom", "char_filter": [ "html_strip", "characters" ], "tokenizer": "standard", "filter": [ "lowercase", "stopwordsfltr_en", "splitmekeepme", "overridestemmer_en", "kstem", "synonymfltr_en", "catchallfltr_en"]}, "analysis": {"filter": { "splitmekeepme": {"type": "synonym","synonyms_path": "custom/linguistics/splitmekeepme.txt"}, "stopwordsfltr_en": {"type": "stop","stopwords_path": "custom/linguistics/stopwords_en.txt"}, "catchallfltr_en": {"type": "synonym","synonyms_path": "custom/linguistics/catchall_en.txt"}, "synonymfltr_en": {"type": "synonym","synonyms_path": "custom/linguistics/synonym_en.txt"}, "overridestemmer_en": {"type": "stemmer_override","rules_path": "custom/linguistics/stemmer_en.txt"}}} Filters for en language Analyzer setup for en language Lower case Stop word removal Override Stemmer Stemmer Catch all (Entity Identifier) Synonym Match Input query
  12. 16 Plugins Used • analysis-icu – https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu.html • analysis-kuromoji –

    https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji- analyzer.html • analysis-smartcn – https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-smartcn.html • analysis-stempel – https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/analysis-stempel.html
  13. 22 What/Why/How • Analytics – Capturing User Data › Pilot.search.dell.com

    – Measuring User Interactions – Feeding Back › No Results Page › Popular Products › Popular Categories/Auto Categorization – Product Performance (Click Through, Views, and tuning) – Tools › Kibana › Custom (d3, highcharts, etc…)
  14. 25

  15. 40