.NET で GroupDocs.Search と GroupDocs.Redaction を使用したドキュメントの検索と赤字処理

現代のエンタープライズ環境では、検索と赤字処理機能は、機密情報を保護しつつドキュメントを容易に検索可能にするために不可欠です。このチュートリアルでは、GroupDocs.Search を使用した高速フルテキスト検索と GroupDocs.Redaction を組み合わせて機密データを安全に除去する堅牢な .NET ソリューションの構築手順を解説します。最後まで読むと、ライブラリのセットアップ方法、カスタムテキストセグメンターの作成、高性能検索の実行、そして安全な赤字処理の適用方法が分かります。

クイック回答

  • 「検索と赤字処理」とは何ですか? 文書内のテキストを見つけ、永続的にマスクすることを意味します。
  • 必要なライブラリは何ですか? .NET 用の GroupDocs.Search と GroupDocs.Redaction です。
  • 多言語コンテンツに対応できますか? はい。カスタムテキストセグメンターを使用して単語を正しく分割します。
  • 検索速度を向上させるには? インデックスは一度作成し、再利用し、optimize search performance 設定を有効にします。
  • インデックス作成が失敗した場合は? トラブルシューティングセクションの「インデックスエラーの処理」ガイドラインに従ってください。

「検索と赤字処理」とは何か

検索と赤字処理は、ドキュメントコレクション内で特定の用語を検索し、プライバシー保護や規制遵守のためにそれらの用語を永続的に隠蔽または削除するプロセスです。フルテキスト検索で機密情報を検出し、赤字処理ツールでコンテンツを置き換えて文書の元レイアウトを保持します。

GroupDocs.Search と GroupDocs.Redaction を組み合わせて使用する理由

GroupDocs.Search は 50 以上のファイル形式 をサポートし、典型的なサーバーハードウェア上で 100,000 件以上のドキュメント を 1 分未満でインデックスできます。一方、GroupDocs.Redaction は PDF、DOCX、PPTX など に対してレイアウトを変更せずに赤字処理を適用できます。両者を組み合わせることで、検索パフォーマンスを最適化し、インデックスエラーを優雅に処理できる単一スタックソリューションが実現します。

前提条件

  • Visual Studio 2022 以降(.NET 6+ 対応)。
  • NuGet パッケージ: GroupDocs.Search と GroupDocs.Redaction(最新の安定版)。
  • 有効な GroupDocs ライセンス(トライアルまたは購入版)。

必要なライブラリ

  • GroupDocs.Search – インデックス作成、クエリ、カスタムセグメンテーションを提供します。
  • GroupDocs.Redaction – 対応フォーマット全体でテキスト、画像、メタデータの赤字処理を提供します。

環境設定要件

インデックスを保存するフォルダーに対して、開発マシンが書き込み権限を持っていることを確認してください。

知識の前提条件

  • C# と .NET プロジェクト構造に慣れていること。
  • ドキュメント処理の概念に関する基本的な理解(任意だが有用)。

.NET 用 GroupDocs.Redaction のインストール方法

.NET CLI または NuGet パッケージマネージャーを使用して Redaction パッケージをプロジェクトに追加できます。コマンドは最新の安定版をダウンロードし、プロジェクトファイルに登録するため、API をすぐに利用可能にします。

dotnet add package GroupDocs.Redaction

GroupDocs のライセンス取得方法

GroupDocs では、評価用の無料トライアル、開発テスト用の一時ライセンス、そして本番環境向けのフル商用ライセンスという 3 つのオプションを提供しています。トライアルは機能が制限され、一時ライセンスは評価期間を延長し、購入ライセンスはすべての機能と優先サポートを解放します。

アプリケーションで GroupDocs.Redaction を初期化する方法

Redaction クラスは、サポート対象ドキュメントに対して赤字処理を適用するための主要エントリーポイントです。ファイルを読み込み、赤字オブジェクトを準備し、処理を実行して元レイアウトを保持したまま変更済みドキュメントを返します。色、オーバーレイ、メタデータ除去などのオプションを設定して、特定のコンプライアンス要件に合わせることも可能です。

using GroupDocs.Redaction;

// Initialize Redactor with the document path
Redactor redactor = new Redactor("path/to/document.pdf");

GroupDocs.Search を使用してインデックスを設定する方法

Index クラスはディスク上に保存される検索可能なリポジトリを表します。インデックスの作成、更新、クエリを管理し、ドキュメントの追加、インデックスの再構築、そして大規模コレクションに対する高速検索を実行できます。インデックスフォルダーはローカルまたはネットワークストレージに配置でき、圧縮や暗号化設定でインデックスデータを保護できます。

using GroupDocs.Search;

// Specify the index folder path
string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Indexing/CustomTextSegmenter";

// Initialize the index
Index index = new Index(indexFolder);

カスタムテキストセグメンターとは何か、そして使用すべき理由

カスタムテキストセグメンターは、生テキストを検索可能なトークンに分割する方法を決定します。特定の言語やドメイン向けに分割ルールを調整することで、トークン化精度が向上し、検索結果の再現率と関連性が高まります。日本語やアラビア語など、単語境界が複雑な言語ではデフォルトのトークナイザーが誤って分割することがあるため、特に有用です。

// Define a search query using Chinese language text
string query = "考虑"; // The word 'consider' in Chinese

カスタムセグメンターを使用したフルテキスト検索の実行方法

SearchQuery オブジェクトはユーザーのクエリをカプセル化し、カスタムセグメンターと連携して一致箇所を特定します。ファジーマッチ、フレーズクエリ、重み付けをサポートし、ドキュメント ID、ヒット位置、関連スコアを含む結果セットを返します。ファイルタイプや日付範囲などのフィルタを適用して、結果を絞り込むことも可能です。

// Execute the search on indexed data
SearchResult result = index.Search(query);

// Process results to analyze findings or display them
foreach (FoundDocument doc in result)
{
    Console.WriteLine($"Document: {doc.DocumentInfo.FilePath}");
}

機密テキストを検出した後の赤字処理の適用方法

Redaction API を使用すると、サポート対象ドキュメント内のテキスト、画像、メタデータを置換または削除できます。機密用語を特定したら赤字オブジェクトを作成し、適用してから赤字処理済みファイルを保存すれば、機密情報は永続的に隠蔽されます。黒箱のオーバーレイ、カスタムカラーの適用、オブジェクト全体の削除など、ドキュメント構造を保持しながら柔軟に設定できます。

using (Redactor redactor = new Redactor("path/to/document.pdf"))
{
    // Define the redaction settings and criteria
    TextRedaction textRedaction = new TextRedaction("Sensitive Information", new ReplacementOptions("[REDACTED]"));
    
    // Apply the redaction to the document
    RedactorChangeLog log = redactor.Apply(textRedaction);

    if (log.Status != RedactionStatus.Failed)
    {
        redactor.Save();
    }
}

一般的な問題とインデックスエラーの対処方法

  • インデックスが見つからない: インデックスパスが存在し、アプリケーションに読み書き権限があることを確認してください。
  • 検索結果がゼロ: インデックス作成プロセスを再実行し、カスタムセグメンターが正しく登録されていることを確認してください。
  • 特定のフォーマットで赤字処理が失敗: ファイルタイプがサポートされているか確認してください。PDF の場合は、PDF 2.0 機能に対応した最新の Redaction バージョンを使用します。

実用的な活用例

  1. 法務文書管理: 契約書で「non‑disclosure」を検索し、外部共有前に自動的に条項を赤字処理します。
  2. 学術研究: 原稿中の未公開データを特定し、ピアレビューのプロセスで非表示にします。
  3. ビジネス契約: 数千件の契約書をバッチ処理し、個人識別情報を赤字処理しつつ法的文言は保持します。

大規模ドキュメントセットの検索パフォーマンスを最適化する方法

パフォーマンスを最大化するには、ドキュメントを一度だけインデックス化し、以降のクエリで同じインデックスを再利用します。並列処理を有効にし、キャッシュを構成し、インデックス設定をチューニングしてレイテンシを削減し、マルチコアサーバー上でスループットを向上させます。さらに、EnableMemoryMapping フラグを設定してインデックスをメモリマップし、大規模データセットの読み取り操作を高速化します。

大容量ファイルを扱う際の .NET メモリ管理方法

大容量ドキュメントを扱う際はメモリ管理が重要です。Index と Redaction オブジェクトを using ステートメントでラップして決定的に破棄し、ファイル全体をメモリに読み込むのではなくストリームとして処理します。パフォーマンスカウンタを監視してメモリスパイクを早期に検出し、バッチサイズの調整やガベージコレクションのチューニングを行います。

よくある質問

Q: GroupDocs.Search を非テキストメタデータと共に使用できますか?
A: はい。メタデータフィールドはドキュメントコンテンツと共にインデックス化でき、「author:JohnDoe」のような検索が可能です。

Q: GroupDocs.Redaction は Web API でリアルタイム赤字処理をサポートしていますか?
A: サポートしています。小さなファイルは同期的に Redaction API を呼び出し、サイズが大きいジョブは非同期キューに入れて処理できます。

Q: インデックスが破損した場合はどうすればよいですか?
A: 破損したインデックスフォルダーを削除し、同じインデックス作成手順で再構築してください。ライブラリは原因特定に役立つ詳細なエラーメッセージをログに出力します。

Q: 保存前に赤字処理済みドキュメントをプレビューできますか?
A: 可能です。redaction.Apply() に preview フラグを付けて呼び出すと、レビュー用の一時バージョンが生成されます。

Q: 正式にサポートされている .NET バージョンはどれですか?
A: GroupDocs.Search と GroupDocs.Redaction は .NET 6、.NET 5、.NET Core 3.1、.NET Framework 4.6.2 以上をサポートしています。

リソース


最終更新日: 2026-06-12
テスト環境: GroupDocs.Search 23.11, GroupDocs.Redaction 23.11 for .NET
作者: GroupDocs

Install-Package GroupDocs.Redaction

関連チュートリアル