Hi there Algolia Gurus!
We are relatively new to the Algolia world and have recently migrated from native Shopify to Algolia search and merch.
We sell a lot of technical product, and wanted to add “helpers” by using the named tag filter headings, and values.
As an example, if we are offering attributes on tyres, we might have a “Casing” named tag.
Then next to the word casing, we would have a little “i”, if the user clicks on this, we define what a tyre casing is.
Then next to the values, we would also have a little “i” and if the user clicks on this, we define what the value means.
This way the novice user can self-educate along their purchase journey.
So my questions are -
- where would you store this data in algolia?
- how would you retrieve it as part of a search result?
Thanks in advance!
@michael.geale welcome to the community!
I believe your only option is to include it in the record or store this information separately from the product index in a flat file you load via a CDN or another Algolia index.
Your index record could contain:
"features": ["runflat", "studded"]
Then you could have a detail file with the full descriptors:
"runflat": "Run flat tyres have the ability ...",
"studded": "Studded tyres have small metal spikes ...",
Happy to help further, let us know! Thanks!
Thanks for the welcome and the quick reply @michael.king !
I’ve done a few notes below, I’d love to hear your thoughts.
1. On the record
- No extra records to manage,
- Simple tech approach
- A lot of duplicated information,
- May add weight to index size
Another Algolia index
Approach - What you suggested.
Capture reference URL on each algolia index record, then style the result in the front end
- May be cheaper than algolia’s per request pricing
- May be difficult to keep both records in sync
- Extra DB to manage
@michael.geale no problem! I agree with your findings on the other approaches.
Another Algolia Index
- Can be managed/synchronized in a similar fashion as your existing data (less complexity/setup)
- Faster than loading via a CDN (depending on your geolocation)
- Additional records to keep in sync
- Extra charges for the requests to obtain the information (I would cache the information per session, so really it’s only one extra request per session)
Also, I’ve been thinking about this as data that is needed instantly (as it’s our habit over here - haha). I think if we take a step back and think about it, how likely is it that a User would hover over the help text within half a second of the page loading and expect a result? You’d also only have to load this file once and could load it at the beginning and use it for that entire session.
I think it’s reasonable to load this data from your server where the source of truth is and if it takes 200ms-500ms, it’s maybe not as big of a deal. Ultimately, I think this depends on your ultimate UX goal and weighing the pros and cons of the list above to see what will work best for your team’s workflow and for your Users.
Thanks again Michael, all great insights.
Totally, we could potentially just store it somewhere else, and load it as needed - certainly, 200-500ms would be fine.
You have given us plenty to start working with.