Overhauled Search in Roon

Hey all, I wanted to fill you all in on what’s been happening with search, and we have done in this release to make things better, and a little bit of what we have planned for the future.

Before I get started, one piece of background: we feel strongly that it’s best for the product to present a single, clear answer to a search query that blends both library and streaming content without putting them into separate “silos” as some other products do. This allows Roon to give a single set of answers to a query without forcing the user to pick apart, disambiguate, or dig deeper based on where the results are coming from. You’re not searching your library OR searching TIDAL, you are just searching and getting results. It’s a simpler and better experience.

Thus, Roon has to independently search your library, held within the Roon Core, and streaming content, held within cloud services, and then merge them together. This merging problem is a tricky one–for the most part, people do not mix results across search engines, and this, among other things, had left Roon’s search experience in an unacceptable state.

A bit over a year ago, we decided that not only did this have to be fixed, but that search was a “forever problem”, not something that we could fix once and forget about. It requires continual care and feeding and dedicated staff who think about search and only search, so we hired a search specialist, and about a year ago, we got to work tackling search with fresh eyes.

We released the Auto-complete feature earlier this year, and in building that, gained a detailed understanding of exactly how and why our existing search engine was getting things wrong. That allowed us to kick off the “big project”–an overhaul of Roon’s search infrastructure end to end.

We began by analyzing hundreds of complaints and reports from the Roon Labs Community to understand what the problems are. We used your feedback to build test cases and validate our work. Separately, we analyzed anonymized data from our servers to understand what real-world search queries looked like.

As we dug deeper, we figured out that one of the major problems is that the search engine used for the Roon Library just worked too differently from the search engine used for streaming content. The two search engines computed and scored results according to different principles, established in different eras of Roon’s product development.

The library algorithm generally returned results that were too noisy and numerous, and in a significant number of cases, noise from the library drowned out more accurate streaming results. This was especially painful for people with large libraries.

Another problem that we found is that queries for classical music just look different from queries for other content, and Roon’s search engine was behaving particularly badly with some of these queries.

We decided that in general, our approach to cloud-based search was sane (if in need of some tweaks), and the approach to library search was, simply, wrong.

Thus, the library search engine required a complete, ground-up re-write. Since the most mature search technology is cloud based and Roon’s library is not, we ended up building an embedded search engine that implements the same ideas as cloud-based engines like ElasticSearch, but in a way that lets it run inside of the Roon Core.

We also built a model that can distinguish classical and non-classical search queries prior to performing a search so that we can tweak various parts of the search process to produce more appropriate results for classical or non-classical queries. Alongside this, we updated the user interface to give more priority to composers and compositions when a classical search is detected, which should save classical users a bit of scrolling.

Then, we had to come up with a new approach to merging library and cloud results. This required a fair amount of consideration, but we ended up landing on a really neat (and as far as we know, novel) approach for making consistent scores for search results that came from different search engines, and we’ve implemented it in Roon.

Finally, we spent months testing this stuff amongst ourselves, then with increasingly larger groups of users, until it was clear that people were feeling improvement. During this process, we iterated on all parts of the system.

I’m confident that the major and structural issues with Roon’s search engine have been addressed. I’m also sure that for the forseeable future, people will sometimes run into searches that they don’t feel are working right. Search is a “forever problem”, right?

Now that the bulky work is done, we will be able to iterate with the community more rapidly as feedback comes in, and we intend to continue improving search indefinitely. Thanks for bearing with us during these changes. It takes a lot of time to make meaningful changes like this one, and we appreciate the patience.

57 Likes

Thank you @brian; the work shows, search performance is vastly improved now. My searches are to 99% for ‘classical’ content, and even if not always perfect, I can perfectly live with Roon’s search just as it is now. Well done!

8 Likes

9 posts were split to a new topic: New search (build 880) feedback

Agreed. Search for classical composers and compositions is much cleaner than in previous releases, with a lot less ambiguity and noise.

Nicely written from beginning to end. Thanks for the excellent portrayal of the journey you and your Team took.

Congrats!

In general the search is much improved and lots of problems have been solved.
I’m sure more will come up, especially with Classical, and you guys will just have to try and get more improvements.

But good job. It isn’t useless anymore. Before it pretty much was.

Thanks for the good explanation, too.

Wow - search is much better now! Thanks for that and for the detailed explanation. Good job!

2 Likes

Good Grief! I searched for “paavo jarvi Tchaikovsky” and I get spot on results under ‘Albums’ that’s a first and very much appreciated!

Ok I do get a Mowtown album in the compositions… but I bet Tchaikovsky is mentioned somewhere in that metadata… :blush:

Much, much better… thanks! :clap:

1 Like

A post was split to a new topic: Search (build 880) - server returning 500

Search is one of the aspects I’m very happy with within Roon as a classical music user.
However, what continues to be a MINOR irritation (which search takes care of) is the problem the database has with composers. For example, a composer as well known as Benjamin Britten. Search for ‘Britten’ and I will find most of my local albums and Qobuz favourites. I know your search has improved because I can now find John Wilson’s recent album with a Britten composition on it. However, click on composer ‘Benjamin Britten’ and the experience falls apart - a mere fraction of what I’d expect to see is shown under ‘Albums in my library’. This aspect is still broken.
Not a major issue - I love Roon/Qobuz - but it just sticks out like a sore thumb. When might this aspect be worked on?

1 Like

Awesome work! Thanks to everyone at Roon that worked on this.

1 Like

The search is SO bad. Also in the beta version.
I have a Qobuz subscribtion.
Wanted to find “OP 12” ; “des abends”; “Arthur Rubenstein”. Google could do it, but in Roon it is impossible.
I would to start with “Arthur Rubenstein”, then continue with one of the other keywords, but no way.

And why is it that I can search and find new albums in the Qobuz app directly but not in Roon??

1 Like

Not at all impossible:

3 Likes

Will you guys ever consider hiring a data base / backup specialist?

1 Like

Fantastic write-up. Love the approach here and the results speak for themselves! Great work!

Excuse me, but what is this new “research”? I type Haendel, I get Georg Frederic Haendel and only one reference: Organ Concertos! Nothing else ?..

Yesterday I searched for Pierre Boulez, I was offered only one of his Stravinsky discs! Nothing else ?..

Come on, that’s not serious!

I ran this search and get the one album as well.
If you click on the link below in the results listed as composers.
I then go to discography and have 138 albums available. I just have Qobuz though.

Are you not seeing similar?

13 posts were merged into an existing topic: Search (build 880): typos not yielding good results

Really ??? !!! Is it a joke ?