Bugzilla – Bug 1636
Searching for artists doesn't search display name properly, uses sort order instead
Last modified: 2008-12-15 11:57:32 UTC
Currently the search functionality appears to search the artist SORT ORDER string rather than the artist name. This means that a search for "Ben Folds" results in no matches because my Ben Folds tracks have a TSOP tag of "Folds, Ben". I think that this is pretty unintuitive and is likely unintended.
does this have the same behaviour when using player UI for searches?
also, is this live search or advanced search can you also supply a d_sql log for the case that triggers this problem?
Sorry, should have been more specific. This is the livesearch or the advanced search. I haven't figured out a way to enter a space into the player UI to test the query that makes it work. Here's the log generated by a single search for "Ben Folds". If I change the search string to "Folds, Ben" it finds the artist and lists him as "Ben Folds". 2005-06-10 17:57:58.7935 Generated findKey: [contributor:contributor.namesort:contributor.role:BEN F*:* BEN F*:1::::] 2005-06-10 17:57:58.7943 Start and End node: [contributor:contributor] 2005-06-10 17:57:58.7945 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:58.7947 Start and End node: [contributor:contributor] 2005-06-10 17:57:58.7948 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:58.7958 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:58.7960 Running SQL query: [SELECT DISTINCT contributors.id AS id,contributors.name AS name,contributors.namesort AS namesort,contributors.moodlogic_id AS moodlogic_id,contributors.moodlogic_mixable AS moodlogic_mixable,contributors.musicmagic_mixable AS musicmagic_mixable FROM contributor_track, contributors WHERE contributors.id = contributor_track.contributor AND ( contributor_track.role = ? AND ( ( contributors.namesort like ? ) OR ( contributors.namesort like ? ) ) )] 2005-06-10 17:57:58.7962 Bind arguments: [1, BEN F%, % BEN F%] 2005-06-10 17:57:58.9051 Generated findKey: [album:contributor.role:album.titlesort:1:BEN F*:* BEN F*::::] 2005-06-10 17:57:58.9058 Start and End node: [contributor:album] 2005-06-10 17:57:58.9060 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:58.9063 Start and End node: [album:album] 2005-06-10 17:57:58.9064 Field query. Need additional join. start and End node: [album:album] 2005-06-10 17:57:58.9074 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:58.9075 Running SQL query: [SELECT DISTINCT albums.id AS id,albums.title AS title,albums.titlesort AS titlesort,albums.contributors AS contributors,albums.artwork_path AS artwork_path,albums.disc AS disc,albums.discc AS discc,albums.musicmagic_mixable AS musicmagic_mixable FROM contributor_track, tracks, contributors, albums WHERE contributor_track.track = tracks.id AND contributors.id = contributor_track.contributor AND albums.id = tracks.album AND ( ( ( albums.titlesort like ? ) OR ( albums.titlesort like ? ) ) AND contributor_track.role = ? )] 2005-06-10 17:57:58.9077 Bind arguments: [BEN F%, % BEN F%, 1] 2005-06-10 17:57:59.1895 Generated findKey: [track:contributor.role:track.titlesort:1:BEN F*:* BEN F*::::] 2005-06-10 17:57:59.1905 Start and End node: [contributor:default] 2005-06-10 17:57:59.1907 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:59.1910 Start and End node: [default:default] 2005-06-10 17:57:59.1911 Field query. Need additional join. start and End node: [default:default] 2005-06-10 17:57:59.1921 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:59.1923 Running SQL query: [SELECT DISTINCT tracks.id AS id,tracks.multialbumsortkey AS multialbumsortkey,tracks.thumb AS thumb,tracks.age AS age,tracks.ct AS ct,tracks.titlesort AS titlesort,tracks.album AS album,tracks.tracknum AS tracknum,tracks.url AS url,tracks.tag AS tag,tracks.title AS title,tracks.disc AS disc,tracks.fs AS fs FROM contributor_track, tracks, contributors WHERE contributor_track.track = tracks.id AND contributors.id = contributor_track.contributor AND ( contributor_track.role = ? AND ( ( tracks.titlesort like ? ) OR ( tracks.titlesort like ? ) ) )] 2005-06-10 17:57:59.1924 Bind arguments: [1, BEN F%, % BEN F%] 2005-06-10 17:57:59.4620 Generated findKey: [contributor:contributor.namesort:contributor.role:BEN FOLDS*:* BEN FOLDS*:1::::] 2005-06-10 17:57:59.4628 Start and End node: [contributor:contributor] 2005-06-10 17:57:59.4631 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:59.4633 Start and End node: [contributor:contributor] 2005-06-10 17:57:59.4634 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:59.4644 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:59.4646 Running SQL query: [SELECT DISTINCT contributors.id AS id,contributors.name AS name,contributors.namesort AS namesort,contributors.moodlogic_id AS moodlogic_id,contributors.moodlogic_mixable AS moodlogic_mixable,contributors.musicmagic_mixable AS musicmagic_mixable FROM contributor_track, contributors WHERE contributors.id = contributor_track.contributor AND ( contributor_track.role = ? AND ( ( contributors.namesort like ? ) OR ( contributors.namesort like ? ) ) )] 2005-06-10 17:57:59.4647 Bind arguments: [1, BEN FOLDS%, % BEN FOLDS%] 2005-06-10 17:57:59.5749 Generated findKey: [album:contributor.role:album.titlesort:1:BEN FOLDS*:* BEN FOLDS*::::] 2005-06-10 17:57:59.5756 Start and End node: [contributor:album] 2005-06-10 17:57:59.5758 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:59.5761 Start and End node: [album:album] 2005-06-10 17:57:59.5762 Field query. Need additional join. start and End node: [album:album] 2005-06-10 17:57:59.5772 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:59.5775 Running SQL query: [SELECT DISTINCT albums.id AS id,albums.title AS title,albums.titlesort AS titlesort,albums.contributors AS contributors,albums.artwork_path AS artwork_path,albums.disc AS disc,albums.discc AS discc,albums.musicmagic_mixable AS musicmagic_mixable FROM contributor_track, tracks, contributors, albums WHERE contributor_track.track = tracks.id AND contributors.id = contributor_track.contributor AND albums.id = tracks.album AND ( ( ( albums.titlesort like ? ) OR ( albums.titlesort like ? ) ) AND contributor_track.role = ? )] 2005-06-10 17:57:59.5776 Bind arguments: [BEN FOLDS%, % BEN FOLDS%, 1] 2005-06-10 17:57:59.8605 Generated findKey: [track:contributor.role:track.titlesort:1:BEN FOLDS*:* BEN FOLDS*::::] 2005-06-10 17:57:59.8614 Start and End node: [contributor:default] 2005-06-10 17:57:59.8616 Field query. Need additional join. start and End node: [contributor:contributor] 2005-06-10 17:57:59.8618 Start and End node: [default:default] 2005-06-10 17:57:59.8620 Field query. Need additional join. start and End node: [default:default] 2005-06-10 17:57:59.8630 Backtrace: frame 0: Slim::DataStores::DBI::DataModel::find (/home/tsandee/slimserver_svn/trunk/server/Slim/DataStores/DBI/DBIStore.pm line 233) frame 1: Slim::DataStores::DBI::DBIStore::find (/home/tsandee/slimserver_svn/trunk/server/Slim/Music/LiveSearch.pm line 49) frame 2: Slim::Music::LiveSearch::query (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/Pages.pm line 1524) frame 3: Slim::Web::Pages::livesearch (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 753) frame 4: Slim::Web::HTTP::generateHTTPResponse (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 674) frame 5: Slim::Web::HTTP::processURL (/home/tsandee/slimserver_svn/trunk/server/Slim/Web/HTTP.pm line 535) frame 6: Slim::Web::HTTP::processHTTP (/home/tsandee/slimserver_svn/trunk/server/Slim/Networking/Select.pm line 115) frame 7: Slim::Networking::Select::select (/usr/local/src/slimserver/slimserver.pl line 625) frame 8: main::idle (/usr/local/src/slimserver/slimserver.pl line 568) frame 9: main::main (/usr/local/src/slimserver/slimserver.pl line 1155) 2005-06-10 17:57:59.8632 Running SQL query: [SELECT DISTINCT tracks.id AS id,tracks.multialbumsortkey AS multialbumsortkey,tracks.thumb AS thumb,tracks.age AS age,tracks.ct AS ct,tracks.titlesort AS titlesort,tracks.album AS album,tracks.tracknum AS tracknum,tracks.url AS url,tracks.tag AS tag,tracks.title AS title,tracks.disc AS disc,tracks.fs AS fs FROM contributor_track, tracks, contributors WHERE contributor_track.track = tracks.id AND contributors.id = contributor_track.contributor AND ( contributor_track.role = ? AND ( ( tracks.titlesort like ? ) OR ( tracks.titlesort like ? ) ) )] 2005-06-10 17:57:59.8633 Bind arguments: [1, BEN FOLDS%, % BEN FOLDS%]
Ben is correct - we're using the sortable version of the artist name for searching. We should actually have a separate column in the DB for a canonicalized, searchable version of the name. This is true for album names and track titles as well. Unfortunately, we're not going to get to it for 6.1.
Ben - I've fixed this in subversion change 3938. 6.2 branch - you'll need to wipe & rescan. I'm not forcing it.
works great now, thanks Dan.
This bug has been fixed in the latest release of SqueezeCenter! Please download the new version from http://www.slimdevices.com/su_downloads.html if you haven't already. If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.