Skip to main content

Search

Explore the search repository...

🛠 Status: Maintenance Mode | Stable

This project is currently in maintenance mode - users should feel free to continue to use this app and expect bug fixes, but not expect many additional features.

Resonate Search Demo

Stack​

  • Mongodb with mongoose and mongoosastic
  • Elasticsearch
  • Koajs

Models​

  • Track
  • Profile
  • Release

Sync data​

To save/update data into elasticsearch, the following script needs to be ran

babel-node -r ./node_modules/dotenv-safe/config ./src/scripts/migrate run

It's configured to connect to our wordpress db which also have a table for tracks.

Query​

With no minimum query length, fuzzy query is possible. The results will be merged and sorted by score.

Use the 'kind' field to identify the model (track|artist|label|band)

[
{
"kind": "track",
"title": "capitalism crashed",
"display_artist": "AGF",
"album": "capitalism crashed",
"tags": ["experimental"]
}
]

Flow​

st=>start: Search API
e=>end: Return error
query=>operation: Query
cond=>condition: Invalid query?
io=>inputoutput: catch error...
para=>parallel: Search tracks and profiles
response=>end: Return merged results sorted by score

st->query->cond
cond(no)->para
cond(yes)->io->e
para(path1, bottom)->response(right)
para(path2, top)