I was using HoudahSpot and Spotlight to track down some files and went down a rabbit hole for a while.

I was building a ridiculous Saved Search that gathered all of my web-design-related bookmarks and notes into one place, based on keywords and tags. I don’t even remember why I started doing this, and HoudahSpot would gladly have saved me from the issue, but I was too far gone.

I got stuck when results in Boolean “OR” searches would be missing results that showed up in other single-predicate searches. In English: searching for “keyword:jquery OR keyword:javascript” wasn’t showing files that would show up in “keyword:jquery” by itself.

That’s where the missing files issue really reared its head. While toying around in the raw plist files for the Saved Search, I found a solution that might help others experiencing this1.

The trick was to change the FinderFilesOnly key in the plist. If you saved your search in the normal location, you can edit this just by opening the ~/Library/Saved Searches folder in Finder and dragging a .savedSearch file to an editor that accepts any extension (Sublime, TextMate, etc.). The key should be in the RawQueryDict section and look like this:

WebDev.savedSearch.xmlraw
"
<key>RawQueryDict</key>
<dict>
	<key>FinderFilesOnly</key>
	<false/>
	<key>RawQuery</key>
	<string>(true) &amp;&amp; (((InRange(kMDItemContentCreationDate,$time.today(-1Y),$time.today(+1d)) &amp;&amp; ((kMDItemOMUserTags = "*jquery*"cd) || (kMDItemOMUserTags = "*javascript*"cd) || (kMDItemOMUserTags = "*responsive*"cd) || (kMDItemOMUserTags = "*webdesign*"cd) || (kMDItemOMUserTags = "*webdev*"cd) || (kMDItemOMUserTags = "html5*"cdw) || (kMDItemOMUserTags = "*css3*"cd) || (kMDItemKeywords = "*jquery*"cd) || (kMDItemKeywords = "*javascript*"cd) || (kMDItemKeywords = "*responsive*"cd) || (kMDItemKeywords = "*webdesign*"cd) || (kMDItemKeywords = "*webdev*"cd) || (kMDItemKeywords = "*html5*"cd) || (kMDItemKeywords = "*css3*"cd)) &amp;&amp; (((kMDItemKind = "Web*"cdw) &amp;&amp; ((kMDItemKind = "Internet*"cdw) &amp;&amp; (kMDItemKind = "Location*"cdw))) || (kMDItemKind = "Markdown*"cdw) || ((kMDItemKind = "Delish*"cdw) &amp;&amp; (kMDItemKind = "Bookmark*"cdw)) || (_kMDItemGroupId = 11)))))</string>
	<key>SearchScopes</key>
	<array>
		<string>kMDQueryScopeComputer</string>
	</array>
	<key>UserFilesOnly</key>
	<true/>
</dict>

If the value on line 4 is set to <true/>, try setting it to <false/> as shown above, then save the file and open the search back up in Finder. You should see System Files and caches in the search now.

I’m not sure what setting in Finder affects that key. I have my privacy settings set to show System Files, and they do show up in other searches. Might be something obvious, in which case I’m sure you’ll let me know. I’ll feel silly, sure, but I won’t hold it against you.

P.S. The headline isn’t a misspelling, it’s a bad joke. If you get it, we’re cool. I was going to go for a “Bridge Over Troubled Water” thing, but that didn’t work out…

P.P.S. Remind me to ask Houdah why I can’t make Saved Searches in Finder from my HoudahSpot searches. I can get the predicate (a nifty feature of HoudahSpot), and I can use it on the command line, but any attempt to modify the predicate in an existing Saved Search is futile, in my experience. I think HoudahSpot should just be able to export a Saved Search

  1. Note that I am not a licensed practitioner and my advice should not be taken seriously. I hereby absolve myself of any liability for your Saved Search, your Finder’s stability or your computer.