Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search: allow to find exact matches, like title:="Nice" #10699

Closed
mixxxbot opened this issue Aug 23, 2022 · 9 comments
Closed

Search: allow to find exact matches, like title:="Nice" #10699

mixxxbot opened this issue Aug 23, 2022 · 9 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: geozubuntu
Date: 2022-04-03T12:14:12Z
Status: Confirmed
Importance: Low
Launchpad Issue: lp1967667


OS Linux Mint 20.3 Una (based on Focal Fossa) x64
Mixxx 2.4-alpha-1132-g6de81c8994 (main) with a very big library.

Try to locate a single word track title in library using the search function and will be disappointed.

I would like to find all versions of a song with the title Evil in my library. Not every track containing the word evil in its title but only those which their title is EVIL. I found out that it is almost impossible with the current implementation of search function of Mixxx.

I tried to write in search field the following:

𝐄𝐯𝐢𝐥 returned thousands of titles containing the 𝐬𝐭𝐫𝐢𝐧𝐠 ..evil.. anywhere i.e Evil's or Devil or Neville or Sevilla, and the 𝐰𝐨𝐫𝐝 Evil like ..the Evil prince.. which is normal and expected.

"𝐄𝐯𝐢𝐥" returned the same as above (even if I am not 100% sure since there isn't a counter to know how many results each search returned, (I will submit another (bug) wish for this) but also thousands of titles containing the 𝐬𝐭𝐫𝐢𝐧𝐠 ..evil.. anywhere (I suppose it isn't normal since I used quotes and mixxx should at least exclude words as Devil or Sevilla returning ..Evil eye.. or .. Evil woman .. or any title containing the 𝐰𝐨𝐫𝐝 Evil)

" 𝐄𝐯𝐢𝐥" (leading space), "𝐄𝐯𝐢𝐥 " (trailing space), " 𝐄𝐯𝐢𝐥 " (leading and trailing spaces) much less results but again hundreds, if not thousands of tracks containing this string anywhere. I can't tell if there is a difference (no counter to say how many).

𝐭𝐢𝐭𝐥𝐞:𝐄𝐯𝐢𝐥 and 𝐭𝐢𝐭𝐥𝐞:"𝐄𝐯𝐢𝐥" returned much less results since it looks only in title column but also everything containing the 𝐬𝐭𝐫𝐢𝐧𝐠 ..evil.. i.e Devil, evil woman, evil ways, Sevilla etc. etc. hundreds of tracks, no counter to say which one returned more.

𝐭𝐢𝐭𝐥𝐞:"𝐄𝐯𝐢𝐥 and 𝐭𝐢𝐭𝐥𝐞:𝐄𝐯𝐢𝐥" returned nothing at all which was expected (probably invalid filter since quotes wasn't closed in both cases)

I couldn't find any combination to have only the tracks with the title "Evil" in the library view.🙁

So I was unable to find the tracks with the title "Evil". I figured out that I have 8 tracks with this single word title Evil after sorting the title by clicking on the title and then scroll down to letter E so they were all sorted together. But it is a workaround in my opinion.

So a revision of the search function should be done to address this situation.
Think that you like to find all covers of a song for a show or a podcast...

Thanks in advance

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2022-04-03T23:56:21Z


What about
title:evil
and sort by title (clicking the column header). Doesn't "Evil" show up at the top/bottom?

@mixxxbot
Copy link
Collaborator Author

Commented by: geozubuntu
Date: 2022-04-05T17:19:33Z


@ ronsoO Unfortunately not at the top or bottom. As I wrote, by sorting the title they appear somewhere in between some hundred others in the starting letter series. For evil it is like:
.....
.....
.....
A Touch of Evil
And The Devil Cried
Axis Of Evil
Bad Meets Evil
Before The Devil Knows
....
....
....
Better The Devil You Know
Can't Kill the Devil
Career of Evil
Chase The Devil
....
....
....
Devils Playpen
Don't You Lie to Me (I Get Evil)
dream evil
Evil
Evil
Evil
Evil
Evil
Evil
Evil
Evil
Evil Dildo (hidden track)
Evil Eye
Evil Eye
Evil Eye
Evil Eyes
Evil Fantasies
......
......
Fire Devil
Friend of the Devil
....
....

Which is a workaround in my opinion. Difficult to scroll if you have some hundreds of titles containing evil.

Anyway, thanks for your time

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2022-04-05T18:57:41Z


Okay, so sort by title, focus a title cell, press "e".
That should bring you to first title starting with (or last, depending on your current position in the table).

Still just a workaround if you look for that word at the beginning of the title string.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2022-04-06T05:52:24Z


When you start searching the first time what was your expectation?
What is your prefered syntax to support all your searching use cases?

@mixxxbot
Copy link
Collaborator Author

Commented by: geozubuntu
Date: 2022-04-07T20:20:32Z


Hello Daniel

I think the syntax title:"" which returns the empty title tracks is very useful and a correct approach.
With this in mind and thinking the double quotes as a container for searching the exact string inside, my expectation the first time I started to search was to locate the exact phrase contained in them. If it was one word I expected to have only this word in any field. If it was 2 words to have these exact 2 words, if I would like to have more titles containing those one or 2 or 3 words I shouldn't use the quotes but write the words without quotes. Of course manual writes use " for two word searches but I thought for the exact two words.

I think that my preferred syntax would use a placeholder like * which could add versatility and would be very helpful for extensive searches in very big libraries where is difficult to remember the exact titles of all tracks.
something like *nice could return Venice, Ask for Janice or slice me nice e.t.c

Thanks again
George

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2022-04-07T22:01:59Z


That sounds reasonable. However there is an issue is with the two word search.

For instance [...Baby One More Time]
With [Baby One] I have 50 results
With ["Baby One"] I have only one results.
When we implement that as exact match I would have none.
I guess I cannot remember the leading dots so I will never have a hit.

Will it be a solution for you to search only for entire titles when the string in quotes has no space?

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2022-04-08T00:33:15Z


Currently, these two yield the same results
title:yeah
title:=yeah

What about
title:yeah what > title contains 'yeah' and 'what', ignore order
title:"yeah what" > title contains 'yeah what'
title="yeah what" > title is exactly 'yeah what'

All queries would ignore case and allow pre-appending punctuation (or any character that is not a letter and not a number)

@mixxxbot
Copy link
Collaborator Author

Commented by: geozubuntu
Date: 2022-04-10T12:53:47Z


ronso0 hello.

Sorry but for me with 2.4-alpha-1132 and 2.4-alpha-1139 on Linux mint 20.3 (focal fossa)

title:yeah returns whatever contains yeah in any place in the title, word or string.
but
title:=yeah returns nothing at all as well as
title=:yeah or
title=yeah

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@ronso0 ronso0 added this to the 2.4.0 milestone Oct 11, 2023
@ronso0
Copy link
Member

ronso0 commented Oct 11, 2023

Addressed by #12063:
Evil can now be found with title:=evil, Evil song with title:="evil song"

If title:=evil should also find Evil! and ..evil!?+ we need some regex magic to strip all non-alphanumeric punctuation characters next to the quotes.

@ronso0 ronso0 closed this as completed Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants