Search suggestions

Discussion related to "Everything" 1.5.
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Search suggestions

Post by vertigo »

Some requests for improving searching:

1. Add a way to specify that results should end with certain text without requiring use of regex. For example, if I want to search for exe files that contain "foo" and "bar" and so I do a search for foo*bar*.exe some of the results might be files like foo...bar...exe...txt. With regex search, I can add a $ to the end to do this, but that requires a lot of extra steps (ctrl+r, go back and edit the *'s to .*'s, and possibly other changes to get the search to work as regex, then remembering to switch back to normal/non-regex after or if opening a new tab) for a simple search. It would be really helpful to have a way to tell it this on a non-regex search, to keep things simple and not require regex for such simple things. This could be done by adding a "/" at the end, which currently causes it to show no results, since a "/" can't be in a filename/path, and so it could be treated as a "end of filename, only show results with nothing after this point" function.

2. When using NOT, it should allow the use of the OR (|) separator with it. For example, if I want to search for files containing abc and not def OR ghi, I have to search for 'abc NOT def NOT ghi' when I should be able to do 'abc NOT def|ghi' but the latter will be treated like 'abc -def +ghi.'

3. type:video works as expected, seemingly showing all video types/extensions (though I haven't checked thoroughly), but type:audio is very limited in the extensions it shows. Perhaps there's a way to add extensions to be included in each "type" but I can't find it if there is. At a minimum, type:audio should be completed to include all audio types, but ideally these should allow users to modify them accordingly. Of course, this can also be done with filters, which brings me to the next point.

4. Using filters and bookmarks is handy, but requires a lot of moving around and clicking with the mouse or going through the menus. A feature where you can type a colon (:) which will show a list of bookmarks and filters (ideally in two separate, labeled sections) which is then filtered down as you type, so you can e.g. type :co which would filter down to only entries starting with "co" and then arrow down, if necessary, to the "compressed" filter and hit tab or enter to activate the selected bookmark/filter would make it much easier to quickly select one.
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

Regarding #4, I didn't even realize you could do things like video: height:>=1080. This brings up a couple further points:

- The current method is function: whereas it makes more sense IMO, to do :function. This both prevents searching for the function word (not a big deal) and, more importantly, allows it to recognize immediately, as soon as you type :, that you are using a search function, which would allow it to present you with the list as described above, so you don't have to remember them. Then, as you narrow down the list, in this case by typing :video, it could present you with further available options, so after typing that, it could show you additional parameters you can use like height, etc.
void
Developer
Posts: 20362
Joined: Fri Oct 16, 2009 11:31 pm

Re: Search suggestions

Post by void »

1. Add a way to specify that results should end with certain text without requiring use of regex. For example, if I want to search for exe files that contain "foo" and "bar" and so I do a search for foo*bar*.exe some of the results might be files like foo...bar...exe...txt. With regex search, I can add a $ to the end to do this, but that requires a lot of extra steps (ctrl+r, go back and edit the *'s to .*'s, and possibly other changes to get the search to work as regex, then remembering to switch back to normal/non-regex after or if opening a new tab) for a simple search. It would be really helpful to have a way to tell it this on a non-regex search, to keep things simple and not require regex for such simple things. This could be done by adding a "/" at the end, which currently causes it to show no results, since a "/" can't be in a filename/path, and so it could be treated as a "end of filename, only show results with nothing after this point" function.
I recommend enabling Tools -> Options -> Search -> Match whole filename when using wildcards as this gives more control.
The search for
*foo*bar*.exe


Use the regex: search modifier.
For example:
regex:foo.*bar.*\.exe$

-or-
*foo*bar* regex:\.exe$


To enable matching the end of the filename with $:
  • In Everything 1.5, from the Tools menu, click Options.
  • Click the Advanced tab on the left.
  • To the right of Show settings containing, search for:
    match end
  • Select: match_end_of_filename_with_dollar_sign
  • Set the value to: true
  • Click OK.
match_end_of_filename_with_dollar_sign
match_start_of_filename_with_caret

Note: match_end_of_filename_with_dollar_sign doesn't work with wildcards, so please try the following search:
*foo*bar* .exe$



2. When using NOT, it should allow the use of the OR (|) separator with it. For example, if I want to search for files containing abc and not def OR ghi, I have to search for 'abc NOT def NOT ghi' when I should be able to do 'abc NOT def|ghi' but the latter will be treated like 'abc -def +ghi.'
Use < > grouping
For example:
abc !<def|ghi>


Everything Search Syntax


3. type:video works as expected, seemingly showing all video types/extensions (though I haven't checked thoroughly), but type:audio is very limited in the extensions it shows. Perhaps there's a way to add extensions to be included in each "type" but I can't find it if there is. At a minimum, type:audio should be completed to include all audio types, but ideally these should allow users to modify them accordingly. Of course, this can also be done with filters, which brings me to the next point.
File types are defined in the registry.
You can add and change types in the registry, but this is not recommended.
Use filters instead. (Search -> Organize filters)
Search with filters using macros.
For example:
video:



4. Using filters and bookmarks is handy, but requires a lot of moving around and clicking with the mouse or going through the menus.
If you are using Everything 1.5, please try Ctrl + Space to complete a search macro.
eg: type
vid
and press
Ctrl + Space
= lists available macros/functions, eg: video:


Regarding #4, I didn't even realize you could do things like video: height:>=1080. This brings up a couple further points:

- The current method is function: whereas it makes more sense IMO, to do :function. This both prevents searching for the function word (not a big deal) and, more importantly, allows it to recognize immediately, as soon as you type :, that you are using a search function, which would allow it to present you with the list as described above, so you don't have to remember them. Then, as you narrow down the list, in this case by typing :video, it could present you with further available options, so after typing that, it could show you additional parameters you can use like height, etc.
I will consider
:video
.
I do have on my TODO list to list syntax after a function is typed.
For example, type in
height:
and syntax is shown, eg: [<] [<=] [>=] [>] height in pixels
Another example would be typing in
filter:
and a list of all filters is shown.

Thank you for the suggestions.
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

void wrote: Mon Oct 05, 2026 1:52 am I recommend enabling Tools -> Options -> Search -> Match whole filename when using wildcards as this gives more control.

Use the regex: search modifier.

To enable matching the end of the filename with $:

match_end_of_filename_with_dollar_sign
match_start_of_filename_with_caret

Note: match_end_of_filename_with_dollar_sign doesn't work with wildcards, so please try the following search:
*foo*bar* .exe$
I briefly tried out the "Match whole filename when using wildcards" option, but doesn't seem like something I'd like. Just feels too cumbersome, as it requires tacking on another * at the end to get any results (not hard, but more that if you don't do it, you get nothing and might not realize why). Same with the regex: modifier, requiring a lot more complexity, not to mention more to remember. The advanced option is exactly what I wanted, essentially providing some limited regex abilities without having to go all-in (fine when needed, but usually not necessary). My only concern with using "$" was that it can be used in filenames, so that seems likely to at least sometimes cause some problems. There's also the issue you pointed out that it doesn't work with wildcards, and so seems likely to cause some confusion and having to go back and modify a typed search, e.g. adding a space. But I think that should work well for my needs, and hopefully with practice I'll get used to it. Thanks!
void wrote: Mon Oct 05, 2026 1:52 am Use < > grouping
For example:
abc !<def|ghi>
I actually prefer ! instead of NOT as it's cleaner and shorter, but having to use the <> brackets is unexpected (though makes sense since !'s can be in filenames and <>'s can't be) and will definitely take getting used to. The problem is, there's no standard for this stuff, and different programs, websites, search engines, and programming languages have different ways of implementing this, so trying to keep it all straight gets confusing, which is why I'm always looking for simpler ways to do things, in this case simply replacing extras "NOTs" with pipes ("|") instead, and while this allows for that, the additional required brackets make me question if that way is worth it over the way I've been doing it. Perhaps there could be an option to treat !'s as NOT and therefore not require the brackets if they follow a space. Curious what others think. Maybe I just need to adapt. And by the way, I learned after several minutes of testing, trying to figure out why it wasn't working, there's an advanced option for this that needs to be enabled first for it to work. Had me really confused for a bit.
void wrote: Mon Oct 05, 2026 1:52 am You can add and change types in the registry, but this is not recommended.
Use filters instead. (Search -> Organize filters)
Search with filters using macros.
For example:
video:
I'm very familiar with editing the registry, so this would be easy, and would be a safe thing to change, but yeah, filters would probably be better.
void wrote: Mon Oct 05, 2026 1:52 am If you are using Everything 1.5, please try Ctrl + Space to complete a search macro.
eg: type
vid
and press
Ctrl + Space
= lists available macros/functions, eg: video:
I'm running the latest version of 1.5 and this doesn't work for me. Looked for a setting but don't see one. Also, ctrl+space is unintuitive. Most auto-completes use tab or enter. Tab currently moves between panes, which makes sense, but enter does, too, which is unnecessary since tab does it, so perhaps enter could be used as autocomplete instead (this could be an option). Though, again (and I know you said you'd consider it) using :function syntax rather than function: would allow autocomplete to be assisted by a pop-up, which would help with this issue, as you wouldn't need a specific key/key combo to activate it.
void
Developer
Posts: 20362
Joined: Fri Oct 16, 2009 11:31 pm

Re: Search suggestions

Post by void »

NOT can also be used on groups:

abc NOT <def|ghi>



Basic search syntax can be found in Everything under Help -> Search syntax.
There's also simple operators, modifiers and functions available when right-clicking the search box.


I'm running the latest version of 1.5 and this doesn't work for me.
To add a keyboard shortcut to complete word:
  • In Everything 1.5, from the Tools menu, click Options.
  • Click the Keyboard tab on the left.
  • To the right of Show commands containing, search for:
    complete
  • Select: Search Edit | Complete Word
  • Click Add....
  • Press a keyboard shortcut (eg:
    Ctrl + Space
    ) and click OK.
  • Click OK.
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

Ok, it was set to auto complete search on mine, and pretty sure I never changed it. When I switched it to complete word (and actually I did set it to enter after, so good that it can be customized, since I thought it was something hardcoded) it works as described. Also just found that vid:/aud: work as well, which is cool.
void
Developer
Posts: 20362
Joined: Fri Oct 16, 2009 11:31 pm

Re: Search suggestions

Post by void »

Everything 1.5.0.1424b improves wildcards.

Endwith ($) and Startwith (^) modifier support has been added to wildcards.

The following will now work as expected:
foo*bar*.exe$


(requires match_end_of_filename_with_dollar_sign and disabling Tools -> Options -> Search -> Match whole filename when using wildcards)



If you prefer not to use match_end_of_filename_with_dollar_sign, consider the $: search modifier alias.

For example:
$:foo*bar*.exe
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

Thanks for fixing wildcards with ^/$. I've been using them the past couple weeks and it's working well and helping a lot. Definitely seems to be the way to go for me.

Another thing I often need to do, and I wonder if there's a similar way to do it (searched advanced options and didn't see anything) or if something could be added, is limiting a search to a directory and not any subdirectories.

For example:

Code: Select all

c:\dir1\dir2\*foo*.mp3
would find matchings in dir2\ but also in dir2\dir3, and there's no easy way AFAICT to tell it to limit to just dir2. This can again be done with regex, but that requires a much more complex search just to accomplish this one thing. Perhaps there could be an option that \\ can signify to show only results in the main dir and not any subdirs, so the search could be:

Code: Select all

c:\dir1\dir2\\*foo*.mp3
Last edited by vertigo on Thu Oct 22, 2026 3:53 am, edited 2 times in total.
void
Developer
Posts: 20362
Joined: Fri Oct 16, 2009 11:31 pm

Re: Search suggestions

Post by void »

c:\dir1\dir2\*foo*.mp3


Should find files only in c:\dir1\dir2 (not c:\dir1\dir2\dir3)

Have you enabled Tools -> Options -> Advanced -> wildcards_star_all ?

c:\dir1\dir2\**foo*.mp3
will find files in subfolders.



Same applies to
c:\dir1\dir2\\*foo*.mp3


See Tools -> Options -> Advanced -> path_search_type
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

I do have that enabled, which I likely did as I often want to include subdirs. So yes, I see it can be made to do what I'm asking, but then I will just have the opposite problem. Perhaps the suggested \\ could act as an inverter, searching or not searching subdirs opposite of how that setting makes it behave.

Also, if searching for something that contains the same term multiple times, there doesn't appear to be a way to do that. For example, searching for "Foo foo.txt" but not "Foo bar.txt" you can't simply search for "foo foo" as it effectively ignores the second instance.
void
Developer
Posts: 20362
Joined: Fri Oct 16, 2009 11:31 pm

Re: Search suggestions

Post by void »

Perhaps the suggested \\ could act as an inverter
I will consider such an option.
Thank you for the suggestion.



You can temporarily disable wildcards_star_all with
nostarall:


For example:
nostarall:c:\dir1\dir2\*foo*.mp3

nostarall:c:\dir1\dir2\\*foo*.mp3


nostarall:
wildcards_star_all


Also, if searching for something that contains the same term multiple times, there doesn't appear to be a way to do that. For example, searching for "Foo foo.txt" but not "Foo bar.txt" you can't simply search for "foo foo" as it effectively ignores the second instance.
One way to do this is with wildcards, eg:
*foo*foo*
vertigo
Posts: 44
Joined: Sun Oct 08, 2017 8:27 pm

Re: Search suggestions

Post by vertigo »

Thanks. I look forward to the (hopeful) inclusion of such an option, especially since disabling the wildcards with that shortcut unfortunately requires not only remembering that, but significantly more typing every time I need to do such a search, so I don't see myself using that.

As far as searching 'foo*foo' that is much easier to remember and type, so it should hopefully work for me, though an option for this (e.g. duplicate_search_terms_counted/ignored) would also be appreciated. Thanks again for the app and for the help.