-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Labels
Description
Title: feat(search): integrate meilisearch for full-text nft discovery
Complexity Score: 200 points
Description
SQL LIKE queries are insufficient for a marketplace. We need a typo-tolerant, fast search engine to allow users to search collections, NFTs, and profiles by name, description, and attributes.
Requirements and Context
- Engine: Use MeiliSearch (easier setup) or Elasticsearch.
- Syncing:
- When an NFT is minted/updated, sync data to the search index.
- When a User updates their profile, sync data.
- Features: Fuzzy search, faceting (filtering by traits/attributes), sorting.
Suggested Execution
- Install
meilisearch-js(or relevant client). - Create
SearchServiceto handle indexing and querying. - Add event listeners (e.g.,
OnEvent('nft.created')) to trigger indexing asynchronously. - Create
GET /search?q=...endpoint that proxies to the search engine.
Test and Commit
- Mock the search client in tests.
- Verify that calling
SearchService.indexNftsends correct payload. - Commit Message:
feat(search): integrate meilisearch for full-text nft discovery
Reactions are currently unavailable