Successfully reported this slideshow.
Your SlideShare is downloading. ×

StripeCon EU 2021 - Can you make it more like google?

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 49 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to StripeCon EU 2021 - Can you make it more like google? (20)

Advertisement
Advertisement

StripeCon EU 2021 - Can you make it more like google?

  1. 1. Could You Make It More Like Integrating Silverstripe with Elastic App Search ?
  2. 2. Andrew Paxley (né Aitken-Fincham) ● Joined as a Junior Support Developer in 2015 ● Co-helmed the short-lived Silverstripe UK office ● Now Principal Developer in the Application Support Team ● @andrewandante
  3. 3. Agenda ● What’s the problem? ● Elastic + Silverstripe Ltd ● Elastic + Silverstripe Framework ● What’s next?
  4. 4. Problem: Our search is no good!
  5. 5. Lol where’s my document? Where the #*!&^ are my documents?
  6. 6. SOLUTION: ELASTIC APP SEARCH!!
  7. 7. Steps - Index site content - Search that content - ??? - PROFIT!!! - Also autocomplete - Styling - Subsites - And some other bits and pieces
  8. 8. Step 0: Setup Infrastructure (Gentlemen, start your engines)
  9. 9. Silverstripe Ltd: Elastic Partner
  10. 10. Step 1: Add fuel to the Engine
  11. 11. Module: Silverstripe Search Service - Define indexes
  12. 12. Module: Silverstripe Search Service - Define indexes - Configure
  13. 13. Module: Silverstripe Search Service - Define indexes - Configure - Full reindex
  14. 14. Tweaks
  15. 15. Tweaks - Add extension to DMS Document
  16. 16. Tweaks - Add extension to DMS Document - Reindex Pages when Elements are published
  17. 17. Tweaks - Add extension to DMS Document - Reindex Pages when Elements are published - Use env var for index variant
  18. 18. Tweaks - Add extension to DMS Document - Reindex Pages when Elements are published - Use env var for index variant - Turn off html crawler
  19. 19. Tweaks - Add extension to DMS Document - Reindex Pages when Elements are published - Use env var for index variant - Turn off html crawler - Add content type via extension
  20. 20. Step 2: Go find the things
  21. 21. Module: SilverStripe Elastic AppSearch - Run query through a sanitiser
  22. 22. - Add result fields Module: SilverStripe Elastic AppSearch - Run query through a sanitiser
  23. 23. - Add result fields Module: SilverStripe Elastic AppSearch - Run query through a sanitiser - Add facets
  24. 24. - Add result fields Module: SilverStripe Elastic AppSearch - Run query through a sanitiser - Add facets - Add filters
  25. 25. - Add result fields Module: SilverStripe Elastic AppSearch - Run query through a sanitiser - Add facets - Add filters - Multisearch
  26. 26. Module: SilverStripe Elastic AppSearch - Fancy filter for Document Library
  27. 27. Module: SilverStripe Elastic AppSearch - Fancy sort for Document Library - Fancy filter for Document Library
  28. 28. Module: SilverStripe Elastic AppSearch - Templating! - Fancy sort for Document Library - Fancy filter for Document Library
  29. 29. Step 3: Autocomplete through the Proxy
  30. 30. Module: SilverStripe Elastic Proxy (sort of) - React-based search header
  31. 31. Module: SilverStripe Elastic Proxy (sort of) - React-based search header - Return suggested queries
  32. 32. Module: SilverStripe Elastic Proxy (sort of) - React-based search header - Return suggested queries - .htaccess redirect
  33. 33. Module: SilverStripe Elastic Proxy (sort of) - Pull credentials from ENV
  34. 34. Module: SilverStripe Elastic Proxy (sort of) - Pull credentials from ENV - Sanity check endpoints
  35. 35. Module: SilverStripe Elastic Proxy (sort of) - Pull credentials from ENV - Sanity check endpoints - Hard-code final endpoint
  36. 36. Step 4: Ahh crap, Subsites
  37. 37. Problem? - Filter by subsite ID? - query_suggestion endpoint doesn’t accept filters
  38. 38. Step 4.1: Make more copies!
  39. 39. Re-jig the config, re-work the module - Add subsite ID to index definitions - Copy class definitions with yaml syntax magic - Add hooks into the core module
  40. 40. Step 5: Profit!!!
  41. 41. ….. Did it work though? - Fixed bugs for small search terms and special characters - Switched to AND searches over OR searches - Filtering fixes - Ability for customer to adjust field weights and reorder results - Improved visibility about index status
  42. 42. CMS Area for Visibility
  43. 43. Step 6: Aftermath
  44. 44. Now what? - Currently in UAT - Built-in Solr/Elastic toggle - Adjustments to be made on the fly by the client - Training and documentation
  45. 45. Potential new features - Spellcheck* - Hook into analytics tracking* - Better admin in the CMS - Dependency-tracking - Fluent?
  46. 46. Potential new features - Spellcheck* - Hook into analytics tracking* - Better admin in the CMS - Dependency-tracking - Fluent?
  47. 47. Shout Outs! Matt Peel (madmatt), Aaron Carlino (unclecheese), Stephen Makrogianni (StephenMakrogianni), Chris Penny (chrispenny), Ingo Schommer (chillu)
  48. 48. Thanks!

×