結論からいうと、Windows 11のエクスプローラーでファイル名の途中を明示的に検索するなら、目的の親フォルダーを開いてSystem.FileName:~"*blazon*"と入力します。PDFだけなら、後ろへSystem.FileExtension:=".pdf"を追加します。単なるblazonやname:*blazon*は、単語分割や表示言語の影響を受け、任意位置の文字列包含を常に表すとは限りません。
それでも見つからない場合は、インデックスをすぐ再構築しないでください。まず検索範囲、正規AQS、PowerShellによる実ファイル列挙、索引対象の順に確認します。PowerShellでは見つかるのにAQSでは出ないなら検索インデックス側、両方で出ないなら場所、名前、アクセス権、オンライン状態を優先して疑えます。
症状別の確認先
| 症状 | 可能性が高い原因 | 最初に行うこと |
|---|---|---|
| 先頭の語では出るが途中の語では出ない | 既定の単語先頭一致 | System.FileName:~"*語*" |
| PDF以外も大量に出る | 全プロパティ検索、拡張子未指定 | System.FileExtension:=".pdf"を追加 |
| 特定フォルダーだけ出ない | 検索範囲または索引対象外 | 親フォルダーを開き、索引設定を確認 |
| PowerShellでは出るがAQSでは出ない | 索引未完了・除外・カタログ不整合 | 索引状態を確認し、最後に再構築 |
| 両方で出ない | パス、名前、権限、オフライン | 既知ファイルを直接開いて実在確認 |
| NASや共有だけ不安定 | 共有側インデックスなし | 共有側検索または直接列挙 |
| ファイル名は出るが本文語で出ない | 内容索引・IFilterの問題 | ファイル種類の内容索引を確認 |
途中一致を明示するAQS
AQSはWindows Searchがインデックスを問い合わせるための構文です。文字列プロパティで演算子を省略すると、既定では単語の先頭一致または単語一致が選ばれます。そこで、ファイル名プロパティSystem.FileNameとDOSワイルドカード演算子~を明示します。
System.FileName:~"*blazon*"
*は0文字以上の任意文字、?は任意の1文字です。引用符で検索パターンを囲むと、空白や記号を含む語も構文の一部と誤解されにくくなります。英字の大文字・小文字を区別する検索ではありません。
PDFだけを探す
System.FileName:~"*blazon*" System.FileExtension:=".pdf"
System.FileExtensionの値は先頭のピリオドを含むため、".pdf"と書きます。空白で並べた条件はANDです。複数拡張子なら、条件を括弧で明示します。
System.FileName:~"*仕様書*" (System.FileExtension:=".pdf" OR System.FileExtension:=".docx")
AQSのAND、OR、NOTは大文字で記述します。混在させるときは括弧を付け、左からの結合順に依存しない形にしてください。
name:よりSystem.FileNameを勧める理由
name:やkind:のような短いキーワードは、Windowsの表示言語に対応したUIラベルです。日本語環境と英語環境で同じ文字列が必ず解釈されるとは限りません。System.FileName、System.FileExtension、System.DateModifiedなどの正規プロパティ名なら、表示言語による違いを減らせます。
安全な確認手順
- 見つけたいファイルがあるはずの親フォルダーをエクスプローラーで開きます。検索は現在の場所とその配下が基本です。
System.FileName:~"*キーワード*"を入力します。拡張子も分かるならSystem.FileExtensionを追加します。- 既知のファイルを一つ選び、実際の名前、拡張子、保存場所を確認します。拡張子非表示の画面では、見た目と実名が違う場合があります。
- 同じ場所をPowerShellで列挙し、Windows Searchだけの問題かを分けます。
- PowerShellで見つかる場合に限り、Classic/Enhanced、除外場所、索引完了状態を確認します。
- 対象がローカル索引内で、処理完了後も欠落するときだけ再構築します。
PowerShellでインデックスを使わず確認する
PowerShellのGet-ChildItemは、指定したファイルシステムを直接列挙できます。管理者として開く必要はありません。まず検索対象のパスだけを自分のフォルダーへ置き換えます。
Get-ChildItem -LiteralPath 'C:\Docs' -Filter '*blazon*' -File -Recurse |
Select-Object FullName, Length, LastWriteTime
-LiteralPathはパス内の角括弧などをワイルドカードとして解釈しません。-Filterは各階層でファイル名を絞り、-Fileはフォルダーを除外し、-Recurseは配下をたどります。PDFだけなら次のようにします。
Get-ChildItem -LiteralPath 'C:\Docs' -Filter '*blazon*.pdf' -File -Recurse |
Select-Object FullName, Length, LastWriteTime
アクセス拒否エラーが出たフォルダーは検索できていません。エラーを消しただけで「ファイルがない」と判断しないでください。会社の共有フォルダーでは権限を迂回せず、所有者またはIT管理者へ確認します。大きなドライブやNAS全体への-Recurseは時間とネットワーク負荷がかかるため、最も近い親フォルダーから始めます。
検索範囲を確認する
Microsoftは、特定フォルダー内の検索と、遅い代わりに広い「PC」全体の検索を使い分けるよう案内しています。ダウンロード配下を探すならダウンロードを開いて検索し、場所が全く分からないときだけ「PC」を選びます。ホーム画面は最近使ったファイルやクラウド候補を含み、任意ドライブ全体と同じ検索範囲ではありません。
エクスプローラーのアドレス欄に表示された場所も確認してください。同名の「ドキュメント」でも、ローカルのC:\Users\...とOneDrive配下、共有先では実体が違います。検索対象の親パスが違えば、AQSが正しくても結果は出ません。
ClassicとEnhancedを見直す
Windows 11の検索インデックスにはClassicとEnhancedがあります。設定の検索で「検索のインデックス作成」または「検索」を開き、現在のモードと除外フォルダーを確認します。画面名はWindows更新や表示言語で変わるため、階層名だけで見つからない場合は設定内検索を使ってください。
| モード | 対象の考え方 | 向いている場合 | 注意 |
|---|---|---|---|
| Classic | デスクトップ、ドキュメント、ピクチャ、ミュージックなど中心 | 保存場所が決まっている | 追加場所はカスタマイズが必要 |
| Enhanced | PC上のユーザーファイルを広く索引化 | 複数のローカル場所へ保存する | 初回処理とリソース使用が増える |
Classicのまま必要なフォルダーだけ追加する方が、巨大なログや開発用キャッシュまで索引化せずに済む場合があります。Enhancedへ切り替えても除外場所は検索対象になりません。切り替え直後はインデックスが未完成なので、完了前の結果だけで判断しないでください。
ファイル名検索と本文検索を混同しない
Windowsはファイル名、フルパスなどのプロパティを索引化します。PDFやWord文書の中に書かれた語を探す本文検索では、対象形式の内容フィルターと「プロパティとファイルの内容」の設定が関係します。しかし、ファイル名の途中一致だけが目的なら、全拡張子の本文索引を有効にする必要はありません。
ファイル名はAQSで見つかるが本文語だけ見つからない場合に、詳細インデックス オプションの「ファイルの種類」を開き、対象拡張子と内容索引を確認します。本文索引を増やすと、初回作成時間、索引サイズ、ファイル読み取りが増えます。必要な形式だけを対象にします。
OneDrive・NAS・共有フォルダーの違い
OneDrive
ローカルに見えるOneDriveファイルでも、オンライン専用のプレースホルダーと端末へ保存済みのファイルがあります。名前とパスは見えても、本文取得やアプリ処理にはダウンロード状態が影響します。検索だけのために組織の同期方針を変更せず、必要なファイルを正規の方法で利用可能にします。
NAS・Windows共有
リモート共有は、共有側がWindows Searchのリモートインデックスを提供するか、オフラインファイルとしてローカル同期されている場合に索引の恩恵を受けられます。クライアントPCをEnhancedにしただけで、任意のNAS全体がローカル同様に索引化されるわけではありません。
共有側に検索機能があるならそれを優先し、なければ対象を狭くしたPowerShell列挙で確認します。オフライン利用可能にする操作はデータ複製、端末容量、機密データ持ち出しに関わります。会社PCではIT管理者の承認なしに有効化しないでください。
インデックス再構築は最後に行う
再構築は検索カタログを作り直す操作です。元ファイルは削除しませんが、完了するまで検索結果が不完全になり、ファイル数によっては長時間かかります。次の条件をすべて確認してから実行します。
- PowerShellでは目的ファイルが見つかる
- 目的ファイルはローカルの索引対象内にある
- 除外フォルダーではない
- インデックス処理が一度完了している
- 正規AQSでも既知ファイルが欠落する
- 設定から詳細インデックス オプションを開きます。
- 詳細設定を選びます。管理者の確認が表示される場合があります。
- トラブルシューティングの再構築を選び、警告を確認します。
- 完了までPCを使用できる状態にし、同じ既知ファイルとAQSで再確認します。
Enhancedが重い場合はClassicへ戻し、必要な場所だけ追加できます。追加した索引場所も変更画面で外せます。再構築そのものは途中で「以前の索引へ戻す」操作がないため、開始したら処理の完了を待ちます。
変更を元へ戻す
AQS入力とPowerShellの列挙はファイルを変更しないため、取り消し操作は不要です。Enhancedへ切り替えて負荷が高い場合はClassicへ戻し、Classicで追加した索引場所は「インデックスのオプション」の変更画面でチェックを外せます。どちらも元ファイルを削除しません。
インデックス再構築は古い検索カタログへ戻す操作がありませんが、削除・再作成されるのは検索用カタログであり、文書そのものではありません。再構築を開始したら完了を待ち、同じ既知ファイルとAQSで結果を確認してください。
よくある質問
日本語の途中一致にも同じAQSを使えますか?
使えます。たとえばSystem.FileName:~"*設計書*"です。ファイル名の正規化、似た文字、全角・半角、結合文字が違うと見た目が近くても一致しないことがあります。既知ファイルの名前をコピーして短い部分から試してください。
日付やサイズも一緒に絞れますか?
AQSにはSystem.DateModifiedやSystem.Sizeがあります。ただし日付表記はロケール差があるため、まず名前と拡張子で目的ファイルが出ることを確認してから条件を一つずつ追加します。条件を一度に増やすと、どれが結果を消したか分からなくなります。
PowerShellの方が常に速いですか?
いいえ。完成したローカルインデックスは大量ファイルから高速に候補を返します。PowerShellの再帰列挙は実ファイルをたどるため、大きなドライブや遅い共有では時間がかかります。PowerShellは速度競争ではなく、索引結果を検証する診断手段として使うのが適切です。
検索結果がゼロならファイルは存在しないと判断できますか?
検索範囲外、アクセス拒否、オフライン共有、除外場所、未完了索引ならゼロになります。重要なファイルでは、保存先の所有者、元アプリの履歴、バックアップ、OneDriveのWeb画面など、権限のある別経路でも確認してください。
まとめ
途中一致の直接回答はSystem.FileName:~"*キーワード*"です。PDFならSystem.FileExtension:=".pdf"を加えます。出ないときは、正しい親フォルダー、PowerShellの実ファイル列挙、Classic/Enhancedと除外場所、共有先の索引可否を順に確認します。再構築は、ローカル索引の不整合まで絞れた最後の手段です。

コメント