web-dev-qa-db-ja.com

ワイルドカードによるWindowsサーチからディレクトリを除外する

検索インデックス作成がビルドプロセスに干渉しているため、devディレクトリのすべてのインスタンスをインデクサーから除外したいと思います(トランクとブランチが設定されています)。
親ディレクトリ全体を除外することはできますが、除外するファイルが多すぎます。

インデックス作成オプションで各インスタンスの選択を解除することで手動で行うことができますが、これは非常に手動で面倒です。

レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRulesでルールを見つけましたが、その場でルールを更新するのがコーシャかどうかはわかりません。

ワイルドカードまたはその他のあまり手動ではない基準によって、Windowsサーチからディレクトリを除外することは可能ですか?

17
mskfisher

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRulesキーを調べたところ、何か面白いものが見つかりました。

DefaultRules\1に含まれるもの:

Default   REG_DWORD    0x00000001
Include   REG_DWORD    0x00000000
Policy    REG_DWORD    0x00000000
Suppress  REG_DWORD    0x00000000
URL       REG_SZ       file:///C:\Users\*\AppData\Local\Temp\*

そのURLキーを見てください-2つのワイルドカード!

したがって、Windows Searchはワイルドカードをネイティブにサポートしているため、既存の例外を微調整するだけです。

WindowsSearchへのワイルドカード例外の追加

  1. テンプレート例外を追加します。
    Indexing OptionsModifyに移動し、1つのディレクトリ(私の場合はC:\Users\MyName\dev\trunk\bin)の選択を解除して、適切なディレクトリの例外を追加します。
  2. WindowsSearchサービスを停止します。
    Servicesに移動し、Windows Searchを選択して右クリックし、Stopを選択します。
  3. 既存の例外を見つけます。
    レジストリエディタを開き、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRulesに移動します。
    番号が付けられた各サブキーを調べて、自分のものを見つけてください。
  4. 例外を微調整します。
    私の場合、複数のブランチをチェックアウトしているので、trunkとバージョン管理されたブランチ(3.2、4.0など)ごとにディレクトリを作成します。そこで、URLキーをから変更しました

    file:///C:\Users\MyName\dev\ProjectName\trunk\bin
    

    file:///C:\Users\MyName\dev\ProjectName\*\bin
    
  5. WindowsSearchサービスを再起動します。
    Windows Searchを右クリックし、StartまたはRestartを選択します。

それでおしまい!ディレクトリは、インデックスオプションでチェックされていない/除外されています。

19
mskfisher