View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005715 | MMW v4 | Playlist / Search | public | 2009-06-04 15:35 | 2009-06-05 09:56 |
Reporter | rusty | Assigned To | |||
Priority | urgent | Severity | tweak | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | 3.1 | ||||
Summary | 0005715: Search Dialog: Search 'Any Text Field' yields too many results for quoted text | ||||
Description | If the user enters <Artist> <Album> in the Basic (or Advanced) Search Dialog's 'Any Text Field', MM returns results containing <Artist> and <Album>. If the user enters "<Artist> <Album>", MM returns the same results! e.g. Search for: U2 Boy --> results are returned for all tracks on that album Search for: "U2 Boy" --> similar set of results are returned even though no single field contains "U2 Boy" (Artist=U2 and Album=Boy). Note: aside from the bug, it's even stranger that the result set for the above 2 searches is not identical. The search for "U2 Boy" is different in the sense that it excludes all unrated tracks ?! | ||||
Additional Information | Reported at: http://www.mediamonkey.com/forum/viewtopic.php?f=6&t=39990 | ||||
Tags | No tags attached. | ||||
Fixed in build | |||||
|
I reviewed the reasons for this and I must say that the fix isn't trivial and that I would rather defer beyond to 3.1 in order to prevent from introducing regressions. Technical reasons: If you search via searchbar e.g. for "4 Hero Two Pages" then there are two layers: The 1st layer is the SQL part for SQLite's FTS3 engine in the form: SELECT Songs.* FROM Songs WHERE Songs.ID IN (SELECT rowid FROM SongsText WHERE SongsText MATCH ' "4 Hero Two Pages" ' The 2nd layer is our own and this layer is responsible for filtering the results based on the selected fields in Options|Search panel and some other things. One of the other things is, that it filters the results in this case when the phrase is quoted. So when user search via search dialog (basic or advanced) then the 'Any text Field:' condition uses only the 1st layer and therefore the results are different in this case. |