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.
Could You Make It More Like
Integrating Silverstripe with Elastic App Search
?
Andrew Paxley (né Aitken-Fincham)
● Joined as a Junior Support
Developer in 2015
● Co-helmed the short-lived
Silverstripe ...
Agenda
● What’s the problem?
● Elastic + Silverstripe Ltd
● Elastic + Silverstripe
Framework
● What’s next?
Problem: Our search is no good!
Lol where’s my
document?
Where the
#*!&^ are my
documents?
SOLUTION: ELASTIC APP SEARCH!!
Steps
- Index site content
- Search that content
- ???
- PROFIT!!!
- Also autocomplete
- Styling
- Subsites
- And some oth...
Step 0: Setup Infrastructure
(Gentlemen, start your engines)
Silverstripe Ltd: Elastic Partner
Step 1: Add fuel to the Engine
Module: Silverstripe Search Service
- Define indexes
Module: Silverstripe Search Service
- Define indexes
- Configure
Module: Silverstripe Search Service
- Define indexes
- Configure
- Full reindex
Tweaks
Tweaks
- Add extension to DMS
Document
Tweaks
- Add extension to DMS
Document
- Reindex Pages when
Elements are published
Tweaks
- Add extension to DMS
Document
- Reindex Pages when
Elements are published
- Use env var for index
variant
Tweaks
- Add extension to DMS
Document
- Reindex Pages when
Elements are published
- Use env var for index
variant
- Turn ...
Tweaks
- Add extension to DMS
Document
- Reindex Pages when
Elements are published
- Use env var for index
variant
- Turn ...
Step 2: Go find the things
Module: SilverStripe Elastic AppSearch
- Run query through
a sanitiser
- Add result fields
Module: SilverStripe Elastic AppSearch
- Run query through
a sanitiser
- Add result fields
Module: SilverStripe Elastic AppSearch
- Run query through
a sanitiser
- Add facets
- Add result fields
Module: SilverStripe Elastic AppSearch
- Run query through
a sanitiser
- Add facets
- Add filters
- Add result fields
Module: SilverStripe Elastic AppSearch
- Run query through
a sanitiser
- Add facets
- Add filters
- Mult...
Module: SilverStripe Elastic AppSearch
- Fancy filter for
Document Library
Module: SilverStripe Elastic AppSearch
- Fancy sort for
Document Library
- Fancy filter for
Document Library
Module: SilverStripe Elastic AppSearch
- Templating!
- Fancy sort for
Document Library
- Fancy filter for
Document Library
Step 3: Autocomplete through the Proxy
Module: SilverStripe Elastic Proxy (sort of)
- React-based search
header
Module: SilverStripe Elastic Proxy (sort of)
- React-based search
header
- Return suggested
queries
Module: SilverStripe Elastic Proxy (sort of)
- React-based search
header
- Return suggested
queries
- .htaccess redirect
Module: SilverStripe Elastic Proxy (sort of)
- Pull credentials
from ENV
Module: SilverStripe Elastic Proxy (sort of)
- Pull credentials
from ENV
- Sanity check
endpoints
Module: SilverStripe Elastic Proxy (sort of)
- Pull credentials
from ENV
- Sanity check
endpoints
- Hard-code final
endpoint
Step 4: Ahh crap, Subsites
Problem?
- Filter by subsite
ID?
- query_suggestion
endpoint doesn’t
accept filters
Step 4.1: Make more copies!
Re-jig the config, re-work the module
- Add subsite ID to
index definitions
- Copy class
definitions with
yaml syntax magic
-...
Step 5: Profit!!!
….. Did it work though?
- Fixed bugs for small search
terms and special
characters
- Switched to AND searches
over OR sear...
CMS Area for Visibility
Step 6: Aftermath
Now what?
- Currently in UAT
- Built-in Solr/Elastic
toggle
- Adjustments to be
made on the fly by the
client
- Training an...
Potential new features
- Spellcheck*
- Hook into analytics
tracking*
- Better admin in the
CMS
- Dependency-tracking
- Flu...
Potential new features
- Spellcheck*
- Hook into analytics
tracking*
- Better admin in the
CMS
- Dependency-tracking
- Flu...
Shout Outs!
Matt Peel (madmatt), Aaron Carlino (unclecheese), Stephen Makrogianni (StephenMakrogianni),
Chris Penny (chris...
Thanks!
StripeCon EU 2021 - Can you make it more like google?
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
What to Upload to SlideShare
Next
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

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

Download to read offline

How to integrate your Silverstripe site with Elastic App Search - presented 01/10/2021 at StripeCon EU

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

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!

How to integrate your Silverstripe site with Elastic App Search - presented 01/10/2021 at StripeCon EU

Views

Total views

24

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×