Our algolia Index contains services that local professionals(PROs) offer in the area. You know what, let me give you live example.
Let's say we have a "Math Tutor" record, with service description and coordinates where this service is offered.
Our web app allows PROs to specify more unique parameters for every service.
For instance: Math tutor can select a couple of parameters.
- What subject do you teach? (param)
o Algebra (param-value)
o Geometry (param-value)
o Trigonometry (param-value)
o Etc. (param-value)
- What student level? (param)
o Middle school (param-value)
o High school (param-value)
o Etc. (param-value)
So in Algolia index we store params as a collection and the answers(param-values) as a nested collection. We don't know upfront what particular Math Tutor can select in our web app.
It could be 0 - N params and 1 - M param-values for every param.
Let's say somebody searches for Math Tutor and get results for all the math tutors in the area.
We want to build facets to be able to filter math tutors based on the selected params.
In other words we want our clients to be able to select what exact subject(s) they want to see and same thing with Student Level values.
In a perfect world we should have quantity of facets equal to aggregated quantity of params. So every param should represent a separate facet with the values under this param.
The thing is service could be a different one like roofer or baby-seater and as a result params will be different.
We are looking for somebody to consult us of the right approach to take in this situation and about the best practices in general for solving this kind of problems.
About the recuiterMember since Mar 14, 2020 Farooq Ahmad
from Tamil Nadu, India