[RFC] Search experience for new product spaces
See original GitHub issueWhy?
We are about to have more than 1 space in the docs that can have similar headings. If we don’t do anything, the search result will show a list of the same name (with different URL), for example:
By searching “Button”, we might see
- Button (/material-ui/react-button/)
- Button (/joy-ui/react-button/)
- Button Unstyled (/base/react-button-unstyled/)
Goal
build a good-enough search experience for new spaces so that we can make them live as soon as possible
Requirement
- search result should be ranked as the most related content
- search result should show some differences for the same title
Proposal
The first step I think is to rank the product space based on the user’s URL.
Product space ranking
Scenario 1: on homepage When they search for “tutorial”, there is no ranking so the search result is ranked based on the object ID (default by algolia).
Scenario 2: inside a product space
If they are in material-ui space (/material-ui/*
), when they search anything the result of the material-ui space should be ranked first.
Product space indicator
It is possible that the search result will show the same title like:
search for “Button”:
- Button (/material-ui/react-button/)
- Button (/joy-ui/react-button/)
- Toggle Button (/material-ui/react-button/)
- Toggle Button (/joy-ui/react-button/)
To make it obvious, there should be a product identifier (like a badge after the title)
Product exclusion
This one is optional if we found out it is needed. Basically for the case where developers are in material-ui space should not see the search result from another design system (joy-ui).
Issue Analytics
- State:
- Created 2 years ago
- Reactions:4
- Comments:13 (13 by maintainers)
Top GitHub Comments
That could work! Might as well iterate on this and see how it feels. @siriwatknp Any thoughts?
@siriwatknp 👍 for option 2. Why? Because 1 would create too much noise (need to filter the list) and because 3 could create product confusion (the same component in two different products that behaves differently).