Spotlight で検索が正常動作しなくなった時の対処方法
持ち歩き用として使っている Macbook Air ですが、いつのまにか spotlight の検索結果が異常に少なく、正常に検索できない状態になりました。Mac は Windows と違って、基本的にアプリケーションとか探すときも右上に配置された Spotlight を活用して探すと教わったので、spotlight を多用していたので、検索結果が正常にでなくなると大変不便です。
そもそも spotlight の検索結果が、なぜに正常な状態でなくなったのか?
思い返せばおもいっきり心当たりありまくりです。
spotlight のプロセスが "mds" と "mdworker" ということをまだ知らなかった時期のことです。
仕事の関係で Linux kernel のソースコードを展開した直後、突如 Mac のファンが勢い良く回りだし動作が凄く重くなったことがあります。アクティビティモニターを開いて CPU パワーを食っていたプロセスで聞いたこともないものは手当たり次第に強制終了していきました。
検索結果が正常に表示されなくなった時にネットで情報を調べて mds, mdworker が索引を構築するプロセスだと知りました。あぁぁ・・・なんということを。mdworker でデータベースの索引を再作成している最中にプロセスを強制終了すれば、そりゃぁ索引(インデックス)は壊れるわな。
データベースのインデックスが壊れたなら再構築すれば良いわけですが、これがなかなかうまく行きませんでした。
方法1:spotlight 環境設定の GUI からインデックスを再構築
ネットで調査すると、この方法が多く見つかりますが、今回はこの方法ではインデックスは正常な状態に戻りませんでした。まぁ一応こんな方法もあるよという意味で情報を載せておきます。
- メニューから [システム環境設定] を選択
- [Spotlight] をクリック
- [プライバシー] タブをクリック
- [+] ボタンをクリックして検索対象(今回は [アプリケーション] )を追加
※[Macintosh HD]の方がベター - [-] ボタンをクリックして検索対象(今回は [アプリケーション] )を削除
方法2:mdutil でインデックスを破棄して再構築
今回はこの方法でインデックスが正常な状態に復帰しました。記載上、結論が後回しで申し訳なかったのですが、mdutil による再構築を行うのが確実だと思います。
- [Finder] > [アプリケーション] > [ユーティリティ] > [ターミナル.app] を起動
- mdutil からインデックスを無効化します。赤字部分を入力します。パスワードを聞かれますのでMacにログインする際の管理者パスワードを入力します。
$ sudo mdutil -i off / /: Indexing disabled.
- mdutil からインデックスを有効化します。赤字部分を入力します。
$ sudo mdutil -i on / /: Indexing enabled.
- mds, mdworker が起動してインデックス再構築が始まるので処理が終わるまでPCを放置
200GB ほどディスク容量を食ってるので再構築には半日かかりましたが、無事に spotlight での検索結果が正常な状態に戻りました。
ひとつ気になったのが、はじめの状態よりも検索結果が多く表示されるようになってしまったこと。(のような気がしているだけかもしれませんが・・・)
まぁ何れにしてもそのような場合は、spotlight の検索対象改めて設定すれば良いと思います。
コメントやシェアをお願いします!