Bug 1636 - Searching for artists doesn't search display name properly, uses sort order instead
: Searching for artists doesn't search display name properly, uses sort order i...
Status: CLOSED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Web Interface
: 6.1.0
: PC All
: P2 normal (vote)
: ---
Assigned To: Dan Sully
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2005-06-06 09:40 UTC by Ben Sandee
Modified: 2008-12-15 11:57 UTC (History)
1 user (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Sandee 2005-06-06 09:40:49 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.
Comment 1 KDF 2005-06-10 15:23:52 UTC
does this have the same behaviour when using player UI for searches?
Comment 2 KDF 2005-06-10 15:41:20 UTC
also, is this live search or advanced search

can you also supply a d_sql log for the case that triggers this problem?
Comment 3 Ben Sandee 2005-06-10 16:02:04 UTC
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%]
Comment 4 Vidur Apparao 2005-06-30 15:35:08 UTC
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.
Comment 5 Dan Sully 2005-08-10 23:16:34 UTC
Ben - I've fixed this in subversion change 3938.

6.2 branch - you'll need to wipe & rescan. I'm not forcing it.
Comment 6 Ben Sandee 2005-08-11 06:02:39 UTC
works great now, thanks Dan.
Comment 7 James Richardson 2008-12-15 11:57:32 UTC
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.