Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Faceted Navigation


Published on

Faceted Navigation presented by me at the Wildcardconf 2015 ( Examples when Faceted Navigation done right and wrong, observations what should be avoided and what should be implemented to achieve goal of Faceted Navigation.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Faceted Navigation

  1. 1. Faceted Navigation Elastic filtering with ElasticSearch Ruslan Zavacky Sr. Software Architect @ruslanzavacky
  2. 2. What is Faceted Navigation?
  3. 3. Meanwhile in Latvia
  4. 4. WUT? That’s simple Filtering
  5. 5. Requirements
  6. 6. Faceted Navigation helps users to browse large sets of products quickly and intuitively.
  7. 7. What we should know about Faceted Navigation?
  8. 8. Facets shown to customer should be relevant to their Search or Navigation needs
  9. 9. Search and Refine Samsung
  10. 10. Too much
  11. 11. and what is this s**t?
  12. 12. Do not show facets, that are not making any changes to the result set
  13. 13. Search and Refine Samsung
  14. 14. Avoid dead end and zero results
  15. 15. Zero Results, how I even got it?
  16. 16. How ebay handles it
  17. 17. How Amazon handles it
  18. 18. Allow users to review and adjust their filtering options at any stage
  19. 19. The Flamenco Search Interface Project
  20. 20. Our experience
  21. 21. 400,000+ Product 4,000+ Specifications 20,000+ Specification Values Brands, Categories, Prices, Deals, Ratings
  22. 22. Dominate your data
  23. 23. Frontend > Backend Backend > Frontend More logic on Frontend More logic on Backend Faster Queries Complicated Queries Complicated Frontend Complicated Frontend Hard to Scale Easy to Scale Smaller Response Size Bigger Response Size We’ve chosen the right solution Left solution Right solution
  24. 24. Backend is doing all the heavy work. Building all queries, calculating differences between initial set of data and filtered.
  25. 25. Frontend is responsible only for drawing and re-drawing facets after change.
  26. 26. Road to Hell non- empty results
  27. 27. Javascript Performance
  28. 28. Internet Explorer
  29. 29. ElasticSearch
  30. 30. We’ve chose it long before Faceted Navigation And Battle Tested it
  31. 31. Then we’ve realised that we can squeeze a lot from it to achieve our business goals
  32. 32. We use ElasticSearch for Storing Data Analytics Full-Text Searching and Faceted Navigation
  33. 33. REST Aggregations = GROUP BY on steroids
  34. 34. Stats Agg - count, min, max, avg, sum Terms, Missing, IPv4, Geo Distance, Historgram, Stats, Min, Max, Sum, Percentiles, Cardinality, Geo Bounds, Top Hits, Filter, Filters, Nested, Children, Significant Terms, Range, Date Range, Date Histogram, GeoHash Grid Terms Agg - count distinct values
  35. 35. Title Bushnell AR Optics 3-9x40 Riflescope Specifications Condition: New, Used Magnification: 3x, 2x, 1.5x Length: 12.2in, 11.1in, 12.1in Reticle: BDC Brand Bushnell Categories Riflescopes, Optics Data Example
  36. 36. Brands, Categories - are simple Terms aggregations
  37. 37. Specifications are the hard part Condition, Magnification, Length, Reticle We should know product counts with such specifications
  38. 38. To achieve that we’ve separated specifications and specification values into different fields in Product Object
  39. 39. To achieve that we’ve separated specifications and specification values into different fields in Product Object
  40. 40. #1 First query to ElasticSearch Return products, prepare initial aggregations do not apply any specific filters, except global ones Result We will have all products that match initial criteria (page, limit, orderable) and all facets that selected products have.
  41. 41. #2 Second query to ElasticSearch Run the same query as previous, but add filtered results and make this query to return only aggregations (facets) Result You’ll get filtered aggregations that match your criteria
  42. 42. Merge Query Results Together and voilà
  43. 43. DEMO TIME
  44. 44. Analytics
  45. 45. More than 1600 hours of Research, Design and Development
  46. 46. More than 80 darts games
  47. 47. X% Conversion
  48. 48. XX:XX average session duration
  49. 49. Thank You! Q&A time