Install SpotInside to MacBook

SpotInsideというアプリケーションをインストールした。これはSpotlightよりもより効率的にファイルのコンテンツ検索が行えるソフト。基本2ペイン画面で、検索結果を上ペインに表示し、そこから選択したファイルのコンテンツを下ペインに表示する。
このソフトの目的はファイルコンテンツ検索にあるんだけど、僕が気に入っているのは次の2点。

  1. ディレクトリを指定した検索
  2. 検索履歴の保存

1についてはFinderの検索ボックスでもできるんだけど、なぜかディレクトリを選択してから検索しても、最初に返ってくるのはディスク全体の検索結果。検索結果画面の「このMac」の横のディレクトリ名のボタンを押せばいいんだけど、操作が気にくわない。せっかくFinderでディレクトリを選択してから検索しているのに、またディレクトリを選択しなければいけないんで。一方のSpotInsideでは、あらかじめディレクトリを登録・選択しておけば、そのディレクトリのみをターゲットとした検索が行える。まぁ、本来ならSpotlightがブラックリスト方式で基本ディスク全体をインデックスするのでなく、ホワイトリスト方式で指定したディレクトリ以下のみインデックスしてくれる仕様であるのが望ましいのだけども。
2についてはそのまま。過去の検索結果を、再度キーワードを入力せずに参照できるのはうれしい。
だけど、SpotInsideで1つだけ満足いかない点があった。それは、キーワードがファイル名にマッチしたファイルが検索結果としてヒットしないこと。まぁ、これはSpotInsideの本来の機能としてはおかしくない仕様だけども。そこで僕は、SpotInsideのSpotlightクエリ文字列を変更してキーワードがファイル名にマッチするファイルもヒットするようにした。
SpotInsideのSpotlightクエリ文字列はオプション画面から簡単に編集できる。僕は次のように変更した。

(kMDItemTextContent == "%@*"cd) || (kMDItemDisplayName == "%@"cdw) && (kMDItemContentType != com.apple.mail.emlx) && (kMDItemContentType != public.vcard)

変更点はたった1部、 || (kMDItemDisplayName == "%@"cdw) を追加したところ。「||」はORを表し、「kMDItemDisplayName」キーワードを用いることでファイル名にもマッチするようにした。最初はSpotlight Metadata Attributes Reference: Spotlight Metadata Attributesを参考に「kMDItemDisplayName」ではなく「kMDItemFSName」を使ってみたんだけど、検索に異様に時間がかかったので使わないことにした。kMDItemFSNameメタデータ属性はインデックスの対象になっていなく、これを指定すると結局全探索になってしまうみたい。
なお、@の後ろのおまじないみたいなオプションcdwはSpotlight Query Programming Guide: Query Expression Syntaxによると、大文字小文字を区別しない(c)、発音の区別をしない(d)、単語単位での検索を行う(w)と言う意味。