.NET で GroupDocs Search API を使用したインデックスの作成方法
このチュートリアルでは、GroupDocs.Search を使用して .NET アプリケーション向けに インデックスの作成方法 を学び、続いて GroupDocs.Redaction で機密コンテンツを保護する方法を紹介します。ガイドの最後までに、検索可能なインデックスの構築、更新、削除ができるようになり、検索と赤字処理(Redaction)を組み合わせることが、安全な文書管理のベストプラクティスである理由が理解できるようになります。
クイック回答
- “インデックスの作成方法” は何を意味しますか? それは、文書内容を高速検索キーにマッピングする検索可能なデータ構造を構築することを意味します。
- 必要なライブラリは何ですか? .NET 用の GroupDocs.Search と GroupDocs.Redaction(NuGet パッケージ)。
- PDF、Word、画像をインデックスできますか? はい、150 以上のフォーマットが標準でサポートされています。
- インデックスから文書を削除するには? 文書のパスまたは ID を指定して
Deleteメソッドを呼び出します。 - 赤字処理(Redaction)はインデックス作成の前ですか、後ですか? 赤字処理は先に実行すべきで、保護されたデータがインデックスに入らないようにします。
“インデックスの作成方法” とは何ですか?
フレーズ インデックスの作成方法 は、迅速な検索のために用語と文書のマッピングを保存する検索可能なデータ構造を生成するプロセスを指します。GroupDocs では、この構造はディスク上に保存され、コレクション全体を再構築することなくインクリメンタルに更新できます。
GroupDocs.Search と GroupDocs.Redaction を組み合わせて使用する理由
GroupDocs.Search は 150 以上のファイル形式 のインデックス作成をサポートし、10 GB を超えるインデックスでも、ファイルを全体で読み込むのではなくストリーミングするため、メモリ使用量を 200 MB 未満に抑えることができます。GroupDocs.Redaction を追加すると、機密テキスト、画像、メタデータがコンテンツがインデックスに到達する前に除去され、GDPR、HIPAA などの規制への準拠が保証されます。
前提条件
- ライブラリとバージョン – .NET 6 以降に対応した最新の GroupDocs.Search と GroupDocs.Redaction NuGet パッケージをインストールします。
- IDE – Visual Studio 2022(または .NET 6 をサポートする任意の IDE)。
- 知識 – 基本的な C# スキル、ファイル I/O の知識、インデックス概念の理解。
.NET 用 GroupDocs.Redaction の設定
インストール
.NET CLI を使用:
dotnet add package GroupDocs.Redaction
Visual Studio のパッケージ マネージャ コンソールを使用:
Install-Package GroupDocs.Redaction
また、NuGet パッケージ マネージャ UI で “GroupDocs.Redaction” を検索し、最新の安定版をインストールすることもできます。
ライセンス取得
無料トライアルを取得するか、一時ライセンスをリクエストして機能を制限なく試すことができます。ライセンス取得の詳細は、GroupDocs の購入ページをご覧ください。
基本的な初期化
Redactor は文書に対して赤字処理(Redaction)操作を実行する主要クラスです。
以下のスニペットは GroupDocs.Redaction の使用を開始するために必要な最小コードを示しています。
// Initialize the Redactor with a file path or stream
using (Redactor redactor = new Redactor("input.docx"))
{
// Your redaction code here
}
このシンプルな設定だけで、GroupDocs.Redaction の使用を開始できます。
実装ガイド
インデックスの作成方法は?
Index は用語辞書と文書メタデータを保持する検索可能なコンテナを表します。Index オブジェクトをロードまたは作成し、インデックス ファイルを保存するフォルダーを指定して Create を呼び出します。この操作は必要なメタデータ ファイルを書き込み、エンジンを文書取り込みの準備状態にします。
// Direct answer (40‑70 words):
Create a new `Index` instance by specifying the folder path where the index will reside, then invoke `Create()` to initialise the storage structures. The method writes index headers, term dictionaries, and a lock file, making the folder ready for document addition. This step is required only once per index location.
手順 1: インデックスの作成
using GroupDocs.Search;
string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Indexing/DeleteIndexedPaths";
Index index = new Index(indexFolder);
// This line initializes an index at the provided folder path.
インデックスに文書を追加する方法は?
Add は単一の文書をインデックスに挿入し、AddFolder はディレクトリ内のすべてのファイルを処理します。Add または AddFolder を呼び出すことでファイルを追加します。エンジンはサポートされている各ファイルを読み取り、テキストを抽出し、用語辞書を更新します。
// Direct answer (40‑70 words):
Use `index.AddFolder("C:\\Docs")` or `index.Add("C:\\Docs\\file.pdf")` to feed documents into the index. The API streams each file, extracts searchable text, and stores term‑frequency data without loading the entire file into memory, which lets you index thousands of large PDFs efficiently.
手順 2: 文書フォルダーの追加
string documentsFolder1 = @"YOUR_DOCUMENT_DIRECTORY";
string documentsFolder2 = @"YOUR_DOCUMENT_DIRECTORY2";
index.Add(documentsFolder1); // Adding the first folder of documents to the index
index.Add(documentsFolder2); // Adding the second folder of documents to the index
インデックス化されたパスを取得する方法は?
GetIndexedPaths はインデックスに保存されているすべての文書パスのコレクションを返します。
インデックス化されたファイルパスのリストを取得することで、現在検索可能な文書を確認できます。
// Direct answer (40‑70 words):
Call `index.GetIndexedDocuments()` to obtain a collection of `IndexedDocumentInfo` objects, each containing the original file path, document ID, and indexing timestamp. Loop through the collection and output the `FilePath` property to confirm that every expected file has been successfully added.
手順 3: インデックス化されたパスの表示
string[] indexedPaths1 = index.GetIndexedPaths();
foreach (string path in indexedPaths1)
{
Console.WriteLine(path); // Outputs the document paths
}
インデックスから文書を削除する方法は?
Delete はパスまたは識別子でインデックスから文書を削除します。
ファイルが削除されたり古くなった場合は、検索結果の正確性を保つためにエントリを削除すべきです。
// Direct answer (40‑70 words):
Invoke `index.Delete("C:\\Docs\\obsolete.pdf")` or `index.Delete(documentId)` to purge a specific document from the index. The method removes all term entries linked to that file, updates the term dictionary, and frees the space on disk, ensuring that future queries no longer return the deleted content.
手順 4: 特定のパスを削除
using GroupDocs.Search.Options;
string[] pathsToDelete = { @"YOUR_DOCUMENT_DIRECTORY" };
DeleteResult deleteResult = index.Delete(pathsToDelete, new UpdateOptions());
// This deletes specified document paths from the index.
削除後に残っているインデックス化されたパスを確認する方法は?
削除後、取得メソッドを再実行してインデックスが現在の状態を反映していることを確認できます。
// Direct answer (40‑70 words):
Run `index.GetIndexedDocuments()` again and compare the resulting list with the pre‑deletion list. The missing file path confirms successful deletion, while the remaining entries confirm the index’s integrity. This verification step is especially important in automated pipelines.
手順 5: 残りのパスを確認
string[] indexedPaths2 = index.GetIndexedPaths();
foreach (string path in indexedPaths2)
{
Console.WriteLine(path); // Displays remaining paths after deletion
}
実用的な応用例
- 文書管理システム – 数百万のファイルから契約書、請求書、マニュアルを迅速に検索できます。
- 法務文書レビュー – インデックス作成前に特権情報を赤字処理(Redaction)して、偶発的な露出を防ぎます。
- アーカイブソリューション – アーカイブ全体をメモリに読み込むことなく、歴史的記録の検索可能なメタデータを保存します。
- コンテンツ管理プラットフォーム – ブログ、ナレッジベース、マルチメディアライブラリ全体の検索機能を提供します。
- データコンプライアンス監査 – 検索可能なのはサニタイズされたコンテンツのみであることを保証し、規制要件を満たします。
パフォーマンス上の考慮点
- インデックス最適化 – 夜間にインクリメンタルインデックスをスケジュールし、I/O スパイクを減らすためにバッチサイズ 100 ファイルで
AddFolderを使用します。 - リソース管理 – CPU と RAM を監視します。GroupDocs.Search はストリーミング方式でファイルを処理し、10 GB のインデックスでもピークメモリを 200 MB 未満に抑えます。
- ベストプラクティス – クエリ応答をサブ秒レベルにするためにインデックスを SSD に保存し、圧縮(
index.Compression = true)を有効にしてディスク使用量を半減させます。
よくある質問
Q: GroupDocs で非テキストファイルもインデックスできますか?
A: はい、GroupDocs.Search は 150 以上のフォーマット(PDF、DOCX、PPTX、XLSX、画像タイプなど)をインデックスでき、必要に応じて OCR で埋め込みテキストを抽出します。
Q: 大量の文書を処理するにはどうすればよいですか?
A: 設定可能なバッチサイズで AddFolder を使用し、バックグラウンドサービスでインデックス作成を実行し、定期的に Optimize() を呼び出して小さなインデックスセグメントをマージします。
Q: インデックス作成と併用する赤字処理(Redaction)の利点は何ですか?
A: 赤字処理は個人識別情報をインデックスに入る前に除去するため、検索結果が保護されたデータを露出しないことが保証されます。
Q: 検索アルゴリズムをカスタマイズできますか?
A: GroupDocs.Search は同義語辞書、カスタムトークナイザー、正規表現フィルタを提供し、関連性スコアを細かく調整できます。
Q: 一般的なインデックス問題のトラブルシューティング方法は?
A: フォルダーの権限を確認し、.NET ランタイムがライブラリの対象と一致していることを確認し、インデックスフォルダーに生成されるログファイルで詳細なエラーメッセージを確認します。
リソース
- ドキュメント: GroupDocs Redaction .NET ドキュメント
- API リファレンス: GroupDocs Redaction .NET API
- ダウンロード: 最新の GroupDocs リリース
- 無料サポート: GroupDocs フォーラム
- 一時ライセンス: 一時ライセンスのリクエスト
これらのリソースを活用して理解を深め、.NET における GroupDocs.Search と Redaction の実装を強化してください。コーディングをお楽しみください!
最終更新日: 2026-07-26
テスト環境: GroupDocs.Search 23.10, GroupDocs.Redaction 23.10 for .NET
作者: GroupDocs