Spotlight: Brain-Dead Search Priorities
Your author writes a fair amount of code in the Java programming language, and frequently uses Spotlight to open the desired “.java” source file.
So it’s maddening that Apple Spotlight chooses to present binary files as top picks over corresponding source files. For example, favoring “.class” files over “.java” (.class is a compiled .java file)—a useless and distracting behavior.
Spotlight also frequently prioritizes a filename found within an email or other file rather than the source file itself. So “HTMLRewriteFilter.java” buried in an email (or this web page!) is often prioritized in the list over the file itself. What sense does that make when there is an *exact* match on the file name?
It’s 2015 and it seems that all intelligent work on Spotlight has ceased, with the new Spotlight search dialog adding unhhelpful visual distractions and yet going backwards on useful behavior.
Moreover, the Spotlight preferences are a dumbed-down child’s version of something that might be useful if done properly. And so MPG is looking into a way to say “do not find or show .class files” and similar things, because the Spotlight search preferences are almost entirely useless (except for disabling entire classes of refuse).
Attempting to help things along, Spotlight fails utterly: as shown, the file “HTMLRewriteFilter.java” exists and its type (kind) is obviously java (specifying “.java” fails the same way).
Chris R writes:
What also is really annoying with the new Spotlight is the inability to be able to move the actual Spotlight box around the screen once it’s opened!, it’s fixed so if, for example, you were copying a field from a box behind spotlight, you
have to close Spotlight down to view it!
MPG: I’d like it on my 2nd display. Apple golden rule: “Use not more than one display or drive or iDevice, or thou shalt be punished mightily in all behaviors small and useful, for The Apple believes in The One Shall Rule All Testing Protocols”.
John W writes with the suggestion to use:
For the Spotlight search you're attempting, it works much better to use the query:
This limits the search to filename metadata, versus the full metadata+contents index. That neatly avoids the false hits you describe, since those are all content-based hits (e.g. from emails, blog posts, etc.). Command-line (Terminal.app) users can perform this same search as:
mdfind -name HTMLRewriteFilter.java
Also highly relevant to developer workflow is mdfind's -onlyin flag, which limits the search to the specified directory.
MPG: this is a helpful suggestion. But it begs the question: if a filename matches exactly, why can’t Spotlight just work properly rather than always having to type "name:". For that matter why can’t there be some preferences or a checkbox or similar which remembers its state: why do I have to type "name:" 100 times a day? I created these aliases for use within Terminal
alias mdf="mdfind" alias mdfh="mdfind name:.html" alias mdfh.="mdfind name:.html -onlyin ." alias mdfj="mdfind name:.java" alias mdfj.="mdfind name:.java -onlyin ."
It’s a pity that such behavior cannot be set as a preferences in the GUI Spotlight search, or as pre-canned searches. Apple thought is only as deep as the skin of an Apple these days.