Problem is that Roon is trying to reinvent the wheel. Or rather that someone within Roon probably thought it would be a good idea to reinvent the wheel.
The problem you describe, @Tony_Casey , is one of the oldest pitfalls of search engines. It’s also one that is solved by thousands of variations on the same algorithm. Most DBMS’s and query languages have a %LIKE% operator or command.
Even if there isn’t a %LIKE% operator, it isn’t all that difficult to write one, since I know of no high level programming languages that don’t give a programmer the means to do string comparisons.
Searching music data is not akin to searching the internet. Compared to the internet, the dataset Roon has to search is small and in any case finite for practical purposes.
Even given that the data Roon uses comes in different and probably badly structured forms, Roon still has to define relationships between the data in order for Roon to work. This means that there is a fixed relationship definition. Otherwise the software wouldn’t be able to distinguish between an album title and a track title, between a performer and a composer and so on.
One of the old school approaches is to generate a keyword list from all the different relations and if need be to build a relationship table for the keywords to be linked to other qualifiers. It’s not because it’s old school that it’s an antiquated approach.
On the contrary, it’s simple, reliable, easily updated and with today’s processing power it’s fast.
It’s also a solution for all the different spellings of classical composer’s names like Tschaikofsky, Chaikovski, Tshaikovski and the like.
It’s just not flashy. Neither is the wheel, but we haven’t found a better solution for that either.
We’re talking search and retrieve, not mousetraps.
Another aspect that is sorely neglected in the Roon approach is result sorting. It’s all good and well to posit a context aware search, but it will not work without context. Deriving a context from user behaviour is a pipe dream in my opinion. This approach presumes a user who never deviates from habit and never explores. It also doesn’t take into account that the software might be used by different users in a household with differing tastes and habits which would result in at least three behaviour patterns: one for each individual user and one (compromising) behaviour pattern for shared listening.
So by definition the context aware approach is doomed from the start because the context should be defined by the user, not by the software. This is so obvious to me that I despair whenever I look at the jumble Roon search returns.
There is no rhyme or reason.
Simply ordering the results by closest match to search string and then sorting alphabetically (which is the standard operating practice in any good unstructured search) would greatly improve the results.