SharePointでファイル名末尾IDが検索できない原因と解決策|ワイルドカード・メタデータ・Document Set運用

SharePointのドキュメントライブラリで、Policy259.docxのようにファイル名末尾へIDを付けてもfilename:*259では検索できない――この“あるある”は、検索エンジンの仕様を知ると腑に落ちます。末尾IDに頼らず、関連文書を確実に束ねて孤立文書(オーファン)を防ぐ実務的な方法をまとめます。

目次

SharePointで「ファイル名末尾(サフィックス)ID」がワイルドカード検索にヒットしない理由

結論から言うと、SharePointの検索はファイルシステムのように「ファイル名を1本の文字列」として扱っているわけではありません。検索対象はインデックス化された“用語(トークン)”で、ワイルドカード(*)も基本は前方一致(プレフィックス一致)を目的に設計されています。そのため、filename:*259のような末尾一致(サフィックス一致)狙いの検索は期待どおりに動きません。

MicrosoftのKQL(Keyword Query Language / KeyQL)の説明でも、ワイルドカードは「単語の先頭から一部を指定して前方一致させる」用途であること、そしてワイルドカードを先頭に置く(先頭*)形の前方一致はサポートされないことが明記されています。つまり、*259のような“後ろ側を固定して前を任意”という検索は、SharePoint検索の得意分野ではありません。

なぜ「259Policy.docx」だと見つかって「Policy259.docx」だと見つからないのか

ユーザー体験としては不思議ですが、仕組みで見ると単純です。

  • 259Policy.docxのようにIDが先頭にあると、検索クエリをfilename:259*のように書けます。これは前方一致なのでヒットしやすい。
  • Policy259.docxのようにIDが末尾にあると、やりたいのはfilename:*259ですが、これは末尾一致なのでヒットしにくい。

さらに、検索はインデックス(全文検索インデックス)に格納された“個々の用語”に対して一致判定します。ファイル名がどのように分割(単語分割/ワードブレーク)されてインデックスされるかによっても、部分一致の期待値が変わります。SharePoint検索は「選んだ語がインデックス上の用語と一致するか」を基本にしているため、従来のOS検索の感覚で末尾一致を当てにするとズレが生まれます。

やりたいことファイル名例試しがちな検索SharePoint検索の結果ポイント
同じIDの関連文書をまとめて抽出Policy259.docx / Form259.docxfilename:*259ヒットしにくい末尾一致(サフィックス一致)は非対応
先頭IDでまとめて抽出259_Policy.docx / 259_Form.docxfilename:259*ヒットしやすい前方一致(プレフィックス一致)は得意

結局どうするのが正解?「ファイル名検索だけで解決」を捨てるのが近道

SharePointで“孤立文書(オーファン)”を防ぐ本質は、関連付けのキー(Policy ID)を、検索が得意な場所に持たせることです。ファイル名は人間にとって便利でも、検索やガバナンスの軸としては弱い。ここからは、実務で再現性が高い代替策を優先度順に解説します。

推奨策:メタデータ列(例:Policy ID)で関連付ける

最も確実で、運用が破綻しにくいのがドキュメントライブラリに「Policy ID」列(メタデータ)を追加する方法です。検索・フィルター・ビュー・Power Automateなど、SharePointの機能は“列”を軸に最適化されています。ファイル名の末尾にIDを埋め込むより、列として独立させた方が圧倒的に強いです。

列のデータ型は「数値」か「テキスト」か

Policy IDをどう扱うかで、列の型選びが変わります。特に「先頭ゼロがあり得る」「IDにハイフンが入る」などは、後から型変更すると苦労します。

要件おすすめの列型理由例
純粋な連番で、先頭ゼロは不要数値数値として整合性を保ちやすい(範囲や大小比較も可能)259
先頭ゼロが必要/桁数固定1行テキスト数値型だと00259の表現が崩れる00259
枝番や記号を含む(改訂版など)1行テキスト「ID=文字列」と割り切った方が運用が安定POL-259, 259-A

運用を強くするための設定(必須化・既定値・入力ミス対策)

  • 列を必須(Required)にする:アップロード時にID未入力を防げます。
  • 選択肢が決まっているなら「選択肢」や「管理メタデータ(タクソノミー)」も検討:表記ゆれを抑制できます。
  • ポリシーの“親”情報も一緒に持たせる:例)Policy名、主管部門、状態(有効/廃止)、廃止日。

検索ではなく「ビュー」と「フィルター」を主役にする

「ポリシー廃止時に関連文書をまとめて見たい」という目的なら、まずは検索よりもライブラリのビューが強力です。ビューはインデックスの遅延影響を受けにくく、操作がブレません。

  • ビュー例:Policy ID = 259 のビューを用意して、関連文書だけを一覧表示
  • ビュー例:Policy ID が空(未設定)だけを抽出する「監査ビュー」を常設し、オーファン候補を早期発見

サイト横断で検索したい場合は「検索スキーマ(マネージドプロパティ)」を整える

関連文書が複数サイト/複数ライブラリに散らばる場合、KQLのプロパティ検索(例:PolicyID:259)ができると一気に楽になります。そのためには、列が検索インデックスに入るように検索スキーマでマネージドプロパティへマッピングする設計が有効です。マネージドプロパティは、クロールドプロパティの値を検索で扱いやすい形に“昇格”させるイメージです。

  • テナントまたはサイトコレクションの検索スキーマで、対象のクロールドプロパティを適切なマネージドプロパティへマップする
  • 新規/変更したプロパティを検索で使うには、対象ライブラリ/リストの再インデックスが必要になることがある

設定手順(最短で“現場が回る”ところまで)

「Policy ID列を作る」と言っても、現場が迷わず使える形に落とし込むのが肝です。以下は、ドキュメントライブラリ単位で始める場合の手順です(サイト列やコンテンツタイプに昇格するのは、運用が固まってからでもOK)。

  1. ドキュメントライブラリの設定から「列」を追加し、列名をPolicy IDにする
  2. 列を必須にする(新規アップロード時の入力漏れを止める)
  3. 既定のビューにPolicy IDを表示し、一覧画面で見える状態にする
  4. 既存ファイルには、一覧の「グリッドビュー(クイック編集)」で一括入力する
  5. ビューを2つ作る:「Policy ID未設定」と「廃止(Retired)候補」

検索と抽出に効くKQL例(“覚えておくと得する”最小セット)

SharePoint検索は、自由検索(キーワード)とプロパティ指定(property:value)を組み合わせると精度が上がります。KQLの例として、公式ドキュメントでもfilename:budget.xlsxのような指定が紹介されています。運用に合わせて「列(マネージドプロパティ)」へ寄せると、ポリシー廃止時の一括抽出が安定します。

目的例使いどころ
特定のファイル名に一致filename:Policy259.docxピンポイントで探す
拡張子で絞り込みfiletype:docxWordだけ拾いたい
プレフィックス一致filename:259*ID先頭の命名を採用した場合
列(Policy ID)で絞り込みPolicyID:259サイト横断で“関連文書だけ”抽出したい

コンテンツタイプで「ポリシー文書一式」を標準化する

規模が大きくなると、ライブラリごとに列を増やすだけでは統制が難しくなります。そこで効くのがコンテンツタイプです。コンテンツタイプはテンプレートや列(メタデータ)、ワークフローなどを“再利用可能なひとまとまり”として定義でき、部門やサイトをまたいでも同じ入力ルールを適用しやすくなります。

  • 例:コンテンツタイプ「Policy(本体)」と「Policy(付属文書)」を用意し、どちらもPolicy IDを必須にする
  • 例:付属文書は文書種別(フォーム/チェックリスト/手順書…)を必須にして、後から棚卸ししやすくする

廃止時の実務フロー例(オーファンを出さない)

最後に“廃止時の手順”を決めると、設計が完成します。おすすめは、検索より先にビューで抽出→一括処理の流れを固定することです。

手順操作狙い
関連文書の抽出ビュー/フィルターでPolicy ID=259を表示漏れなく“対象だけ”を確定
不足の確認文書種別(フォーム等)で並べ替え、必要文書が揃っているか確認セット管理の品質担保
状態更新状態=廃止、廃止日を一括設定後から検索・監査できる形に
アーカイブDocument Set単位、またはPolicy ID単位でアーカイブ先へ移動運用場所を分け、現用を軽くする

「ファイル名からIDを抜き出して列に自動設定」する(運用負荷を下げる)

人手入力が増えると、必ず未入力や入力ミスが起きます。ここはPower Automateで補うと一気に現場が回ります。代表的な設計は次のとおりです。

  • トリガー:ファイルが作成されたとき(または作成/更新)
  • 処理:ファイル名(拡張子除外)から末尾の数字を抽出(例:正規表現 (\\d+)$)
  • 更新:抽出した値を「Policy ID」列へ書き込み
  • 例外処理:抽出できない場合は担当者に通知/「要確認」フラグ列を立てる

この設計にしておくと、命名規則を守ってアップロードするだけで自動的に紐づき、廃止時はPolicy IDで一括抽出できます。ファイル名はあくまで入力のヒントで、検索の本命は列、という役割分担ができます。

推奨策:ドキュメントセット(Document Set)で「ポリシー単位」に束ねる

関連文書が「ポリシー本体+フォーム+チェックリスト+参考資料」のようにセットで動くなら、Document Setが非常に相性が良いです。Document Setは、関連文書の集合をひとつの単位(1つのエンティティ)として扱える仕組みで、セットに共通のメタデータを持たせたり、テンプレート文書を自動作成したりできます。

Microsoftの説明でも、Document Setは関連文書をまとめて管理でき、共有メタデータ(shared metadata)を指定できること、既定の文書を自動的に用意できることなどが紹介されています。ポリシー運用の「毎回同じ付属文書が必要」「一括でレビュー/承認したい」「まとめてアーカイブしたい」といった要件に刺さります。

Document Setが向いているケース

  • ポリシー番号(Policy ID)を軸に、常に複数ファイルをセットで扱う
  • ポリシーごとに、既定のフォームや雛形を自動で揃えたい
  • レビュー/承認、アクセス権、保存場所(アーカイブ)を“まとめて”運用したい

Document Set運用のイメージ(例)

単位名前例中に入れるもの共通メタデータ例
Document SetPolicy 259Policy259.docx, Form259.docx, Checklist259.xlsx…Policy ID=259, 主管部門, 状態, 改訂日

「どうしてもファイル名末尾IDを残したい」場合の現実的な落としどころ

組織の慣習や外部提出の都合で、ファイル名の末尾にIDを残したいケースもあります。その場合でも、末尾一致検索に固執するより、次の“検索されやすい形”へ寄せると被害が減ります。

落としどころ:区切り文字を入れて「IDを単語として切り出しやすくする」

  • Policy259.docxより、Policy-259.docx / Policy_259.docx の方が“259”を独立した要素として扱いやすくなります。
  • ただし、これでもfilename:*259が動く保証にはなりません。最終的な担保はメタデータ列に置きます。

落としどころ:命名規則は「人間の可読性」と「プレフィックス検索」の両取りにする

命名例人間の見やすさプレフィックス検索推奨度
Policy259.docx◯△低(検索依存に弱い)
259_Policy.docx◯◎(259*で拾える)中(暫定策として有効)
Policy-259.docx◎△中(補助的に)
Policy259.docx+Policy ID列◎◎(列で抽出)高(本命)

孤立文書(オーファン)を出さないための「運用設計」チェックリスト

仕組みを入れても、運用が崩れると結局オーファンは出ます。SharePointで長く回る設計は、次のチェックポイントを満たしているかで決まります。

  • 関連付けのキーが列として存在し、必須化されている(Policy IDが空の文書が増えない)
  • 監査ビュー(Policy ID未設定、状態=廃止、など)があり、定期的に棚卸しできる
  • 自動化(Power Automate等)で入力負荷とミスを下げている
  • ポリシー廃止時の手順が決まっている(例:Policy IDで抽出→Document Setごとアーカイブ→状態更新)

よくあるつまずきと対処

検索に出てこない/出るまで時間がかかる

SharePoint検索は、アップロード直後に必ず即時反映されるわけではありません。検索スキーマの変更やマッピングを行った場合は、再インデックス(再クロール相当)が必要になることもあります。検索での抽出に寄せすぎず、まずはビュー・フィルターで確実に運用できる状態を作ってから、必要に応じて検索を強化するのが安全です。

列を作ったのに、入力が徹底できない

このパターンは「必須化していない」「入力導線が悪い」「例外時の扱いが決まっていない」のどれかです。必須化+自動抽出(できない場合は通知)にすると、現場の負担を増やさずに品質が上がります。

まとめ:末尾ID検索はこだわらず、メタデータで“確実に”紐づける

SharePointの検索は、ワイルドカードで末尾一致検索をする設計ではありません。ファイル名末尾のIDに依存すると、検索漏れ=オーファンの温床になります。最短で効果が出るのは、Policy IDを列として持たせ、ビュー/フィルターで抽出できる状態を作ること。関連文書が常にセットで動くなら、Document Setで束ねるとさらに強固になります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次