luludotdev / beatsaver-reloaded

BeatSaver Again
ISC License
178 stars 49 forks source link

Advanced search #30

Closed kheldorn closed 5 years ago

kheldorn commented 5 years ago

Details

The website could really use an advanced search feature. Currently you can only search for (parts of) titles. Advanced search should include the ability to search for difficulty, number of downloads, rating, up-/down-votes and map type (Standard, Lightshow, ...).

Preferred Solution

On https://beatsaver.com/search in addition to the simple text input field for the title search i'd like to see a few more things added. These could be on a secondary search site or just be hidden behind some CSS/JS to hide them by default.

  1. A bunch of checkboxes, one for each difficulty. By default all these checkboxes should be checked so a search just by title would always find all difficulties. The search should only return songs matching the difficulties of the checked checkboxes.

  2. For map rating either two text input fields (lower and upper limit) or a range slider of some sorts (with a selector for the lower and a selector for the upper limit) would be good. Lower limit would be 0% and upper limit 100%, I guess. By default the search range would be between 0% and 100%.

  3. For number of downloads and number of up-/down-votes a similar approach using the two text input boxes could be used. A slider is kind of not an option here though, since the upper limit is variable.

  4. And lastly a number of checkboxes for the map types (Standard, Lightshow, and whatever other types there are) would be very nice to have.

luludotdev commented 5 years ago

This is something I'm interested in adding, but don't really have time to do myself. PRs are welcome!

The server has an advanced search API which forwards Lucene queries directly to Elasticsearch which would be perfect for this.

adrianlungu commented 5 years ago

I've worked with Elastic on advanced searching before, would try to take a crack on this especially since this is a feature I've been looking forward to for a long time.

adrianlungu commented 5 years ago

Gonna have a version of this ready soon (still needs a bit of styling and testing). For now, this includes

Additional filters can be added afterwards if searching within specific ratings or downloads or number of votes is something desired.

What do you think @lolPants ?

luludotdev commented 5 years ago

This is looking awesome. Thank you for taking the time to do this. The most important thing with this in my opinion is a solid base, so that more filters can be added later with ease.

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

kheldorn commented 5 years ago

Before this gets closed due to inactivity. Any news on this? The preview looked pretty good.

adrianlungu commented 5 years ago

Still working on this, I'll have an update in the next couple of days.

adrianlungu commented 5 years ago

@lolPants - are the beatmap stats kept only in Mongo and not synced with Elastic ?

adrianlungu commented 5 years ago

@lolPants - are the beatmap stats kept only in Mongo and not synced with Elastic ?

Found the answer

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.