Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify search results #77

Merged
merged 5 commits into from
Oct 28, 2024
Merged

Clarify search results #77

merged 5 commits into from
Oct 28, 2024

Conversation

xxxserxxx
Copy link
Collaborator

Implements ticket #76. There are two cosmetic changes, and two significant behavior changes. Watch the "song matches" column:

capture

  1. The columns are renamed "artist matches", "album matches", and "song matches". As discussed -- it removes any confusion about the search page being a browser.
  2. The column titles now include a count of the number of search results. As this is updated in real-time, it also serves as a sort of progress bar
  3. Results are now presented gonic-style: every entity in a group has a name or title that matches the query. This means that, for Navidrome, no longer are albums included who's artists match; however, those matching artists will appear in the "artist matches" column, so the results are included -- they just are no longer duplicated.
  4. The manual paging has been removed. Searching is now performed concurrently. Pages of 20 results (in each column) are fetched, in sequence, until the server returns no results.

In particular on number 3: searches are interrupted by other searches, so that if the user starts a new search while a previous search is still pulling results, the previous search will be interrupted, the results cleared, and a new search started.

This feature in particular has made me realize we need a mock OpenSubsonic API server that we can configure behaviors for, for testing. On my subnet, even with a media library of over 17,000 songs, both Navidrome and Gonic return results too quickly for me to easily simulate behaviors of slower networks. Similar to why I never saw an issue with album art load performance, it's hard for me to type fast enough to trigger the search interruption.

@xxxserxxx
Copy link
Collaborator Author

I keep forgetting to sign these commits. Sorry.

@xxxserxxx
Copy link
Collaborator Author

Grrrr. This one is going to have conflicts. When you get to it, let me know and I'll rebase and clear the conflicts.

@spezifisch
Copy link
Owner

Grrrr. This one is going to have conflicts. When you get to it, let me know and I'll rebase and clear the conflicts.

I'm not ready yet, but your small video looks pretty impressive as far as our search capabilities go. Could be a nice showcase for the v1.0.0 release notes.

This feature in particular has made me realize we need a mock OpenSubsonic API server that we can configure behaviors for, for testing. On my subnet, even with a media library of over 17,000 songs,

Definitely either that or a CI test to benchmark latency against a Dockerized Navidrome and Gonic.

Also I think I didn't clarify that I'm in fact in the same LAN as my music server. The server is not high-end, but it's not that slow.

@xxxserxxx
Copy link
Collaborator Author

Also I think I didn't clarify that I'm in fact in the same LAN as my music server. The server is not high-end, but it's not that slow.

So, that's really weird. Is your library significantly larger than mine? When I run Navidrome, it's in a container on an old 4-core AMD, 8Gb RAM, that's also running a ton of other stuff: Home Assistant, gonic, a zwave integration server, mpd, and Jellyfin; it's my NAS. I'm seriously overloading the thing -- it's using 1GB of swap space, and has about 100MB of free memory at any given time. One of the cores is constantly pegged at 100% by Jellyfin, which seems to be constantly indexing stuff, or I have it misconfigured.

I'm curious as to why my Navidrome seems to respond more quickly. I honestly noticed no lag on the cover art, even after you mentioned it (I only run Navidrome when I'm testing).

@spezifisch spezifisch merged commit 4a8428b into main Oct 28, 2024
27 checks passed
@spezifisch spezifisch deleted the issue-76-clarify-search-results branch October 28, 2024 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants