Search components & library abstractions
Opened this issue · 0 comments
joepio commented
Building a custom GUI for domain-specific search + filtering can be quite the hassle. Atomic Data and Atomic Server provide a few opportunities to make this process easier than ever.
- Atomic-Server has full-text search built in. We don't need an extra elasticsearch application - it's fully embedded.
- Atomic Schema allows for highly standardized descriptions of properties and data models, which can be used to generate filter attributes.
We should make it really easy for developers to build their own search app. This means:
- Provide abstractions for managing search state and building queries. At its core, this is probably a
.search
method and a bigsearchOpts
object.- For react, this means a new hook:
useServerSearch
- For svetelkit, this means a store.
- For react, this means a new hook:
- Provide ready-to-use components. These should be stylable. Most important is generating filters based on a
class
definition. - They should work with atomic-data-browser, of course.
I've used a bunch of libraries in the past that offer similar features, such as searchkit and algolia's instantsearch that could provide some inspiration.