Skip fields when running filter

Hello everyone.

When I run the filter of the application the results show matches found in the 'lyrics' field and having all the files this field containing so much information contaminates the results. Is there any function available to run the filter omitting a particular field?

Something like that: "some_word" NOT USE %lyrics%

If you know that you want to look only a the contents of certain fields, then name these fields in the filter.
I mean the usual suspects then are
TITLE and ALBUM
Artist's names are fairly unique and only appear seldomly in lyrics (ok, Brenda Lee is coming on strong, and I hope Neil Young will remember)

Could you give a concrete example - perhaps an alternative filter expression gets closer to a solution.

There are scripts and programs that fetch unsyncedlyrics automatically from the internet and by that way not so seldom include the artist, the composer or lyricist (which may be the same as the artist).

Yes, true.
I thought more along the lines that you look for a certain artist and suddenly get files by completely different artist (names).
My assumption is that it is fairly easy to sort these odd ones out.
But as this is just an assumption, it would be more interesting to see the real life example.
If you get too many hits then the filter has to be more specific (ok, and skipping a field would be more specific but this function is currently not available in the pure form)

OK, this is a real life example. In fact, this is why I'm here. I want to search the song Train kept a rollin' but I was only sure of the words 'train' and 'rollin'. These are the results because the filter find these words in the 'lyrics' field:

Now, imagine that I want to look for a song with the word 'love' or something like that, too many results.

If you narrow that down (as you know that it is the TITLE in which you want to see that word):
%title% HAS Love
and the previous real life example:
%title% HAS train AND %title% HAS rollin
or
%title% MATCHES "train.*rollin"

1 Like

Thank you very much for the tips, they are very useful and I will use them from now on. Up to now I was using the filter without functions but now I have integrated lyrics to all the files and it is too much information.

I knew that you could filter by a particular field but I was looking for something simpler like:

[function to disable "lyrics" field] train rollin

But you can't have everything in life :D. It's also good to advance and learn these functions, it will be very very useful in the future. Thanks for the help.

There is a filter command NOT if you really like to exclude your UNSYNCEDLYRICS.

You could use it like this:
NOT UNSYNCEDLYRICS HAS sugar

But as @ohrenkino already told you: You get your results faster if you say where your search words should be included.

I think there is a logic quirk:

would include all lyrics that do not show sugar ... not quite the same as skipping

Maybe this complete example can show it better:
* HAS sugar AND NOT UNSYNCEDLYRICS HAS sugar

As far as I understand @susoft 's intention, every tag should be searched for a word excluding the lyrics.
If you don't want to list all tags where the searched word could be included, like %title%, %album%, %artist%, the placeholder * would search in all tags.
In combination with the command AND NOT the filter should exclude the same word to be searched in UNSYNCEDLYRICS, or I'm wrong?

I think that this would not lead to the same result.
If, as in the original example the sought after words would be

and "train" would be part of any field (like TITLE) and also be part of the unsyncedlyrics then with this condition exactly those files that should be found would not appear - as UNSYNCEDLYRICS would not be ignored but would also return a true or false.

Hopefully the OP @susoft can tell us what the expected result should be in such a case? :thinking:

The perfect filter would be: %title% HAS "train" AND %title% HAS "rollin", which finds exactly the two files I expect to find.

But as @LyricsLover says, what I intend to do is to exclude the LYRICS field from the search.

These are the tests I have performed:

Filter: train (165 files out of 5321).
Filter: * HAS train (165 files of 5321)

Filter: TITLE HAS train (20 files of 5321)

Filter: * HAS train AND NOT LYRICS HAS train

It doesn't work because it shows on the one hand all files with a field containing the word 'train' but if in the LYRICS field it has the word 'train' it removes it from the result. The two tracks I'm looking for disappear because they have the word 'train' included in their LYRICS field.

2 Likes

Thank you for the effort and thank you for confirming my finding in
Post #11

Just to be sure:
You don't want to see tracks where "train" and "rollin" exists in ALBUM. Or ARTIST. Or any other tag, you only want to see tracks where "train" and "rollin" exists in TITLE, correct?
So you expect exactly 2 results, not 20, not 165, just 2, correct?

Then I don't understand, why you think about LYRICS at all?

This is absolutely no problem for me, I'm just not sure If I understand what you really want to achieve.
Initially you wrote you want omitting a particular field (LYRICS). But now - if I understand you correctly - now you want to search your words in TITLE only?

This was the initial problem.
This led to a broad filter and the idea was to narrow that result down with a function that would allow to specify which fields should be ignored for the filter.
This function does not exist.
The suggested way out, the way to narrow down the results, was to limit the search to one field.
For the concrete real life case the field TITLE was selected and the OP gave the explanation that so far the simplest filter was used.
Right now, the OP has seen what other options there are and which filter functions may be useful.
I think that a workaround has been found