GroupDocs.Search を使用した Java のメタデータインデックスでドキュメントをインデックスに追加する方法

インデックスへのドキュメント追加を迅速かつ確実に行うことは、現代の検索駆動型アプリケーションの基盤です。法務リポジトリ、カスタマーサポートナレッジベース、社内ドキュメントポータルのいずれを構築していても、metadata indexing を使用すると、著者、タイトル、カスタムタグなどのメタデータで ドキュメントを検索 できるようになります。本チュートリアルでは、インデックス設定の構成、メタデータ中心のインデックス作成、ファイルの追加、そして正確な検索の実行方法を、GroupDocs.Search for Java を使って学びます。

クイック回答

  • metadata indexing の主な目的は何ですか? 文書の全文ではなくプロパティ(メタデータ)に基づく高速検索を可能にします。
  • インデックスにファイルを追加するメソッドはどれですか? index.add(YOUR_DOCUMENTS_FOLDER);
  • カスタムメタデータフィールドで検索できますか? はい、フィールドがインデックス化されれば直接クエリ可能です。
  • 開発にライセンスは必要ですか? 評価には一時的なトライアルライセンスで十分ですが、本番環境では正式ライセンスが必要です。
  • 必要な Java バージョンは? JDK 8 以上が推奨されます。

GroupDocs.Search におけるメタデータインデックスとは?

メタデータインデックスは、文書属性(例:著者、作成日、カスタムタグ)を抽出し、検索可能な構造に保存します。add documents to index を実行すると、エンジンはこれらの属性を記録し、たとえば「John Doe が著者の PDF をすべて検索」や「author で PDF を検索」などの正確なクエリを実行できるようになります。

メタデータインデックスに GroupDocs.Search を使用する理由

  • Performance(パフォーマンス): メタデータ検索は軽量で、ミリ秒単位で結果が返ります。
  • Flexibility(柔軟性): PDF、DOCX、PPT など幅広いファイル形式をサポートします。
  • Scalability(スケーラビリティ): 数百万件のドキュメントを最小限のメモリ使用で処理できます。

前提条件

  • GroupDocs.Search for Java ≥ 25.4。
  • JDK 8 以上がインストールされ、設定されていること。
  • Java と Maven の基本的な知識があること。

GroupDocs.Search for Java の設定

インストール手順

pom.xml に GroupDocs リポジトリと依存関係を追加します:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

最新のバイナリは、GroupDocs.Search for Java releases から直接ダウンロードすることもできます。

ライセンス取得

テスト用の一時ライセンスを取得するには:

  1. GroupDocs のウェブサイトにアクセスし、Purchase セクションへ移動します。
  2. 評価ニーズに合った temporary license プランを選択します。

ステップバイステップ実装

機能 1: インデックス設定の構成

メタデータに焦点を当てたインデックスを構成します:

import com.groupdocs.search.IndexSettings;
import com.groupdocs.search.IndexType;

// Initialize index settings
IndexSettings settings = new IndexSettings();
settings.setIndexType(IndexType.MetadataIndex);  // Focus on metadata indexing
  • setIndexType(IndexType.MetadataIndex) は、エンジンに全文コンテンツよりもメタデータを優先させることを指示します。

機能 2: 指定フォルダーにインデックスを作成する

すべてのメタデータが保存される物理的なインデックスディレクトリを作成します:

import com.groupdocs.search.Index;

String YOUR_INDEX_DIRECTORY = "YOUR_DOCUMENT_DIRECTORY\\\\output\\\\AdvancedUsage\\\\Indexing\\\\IndexingMetadataOfDocuments";

// Create index in specified directory using settings
Index index = new Index(YOUR_INDEX_DIRECTORY, settings);

YOUR_DOCUMENT_DIRECTORY を、プロジェクト構成に合わせたパスに置き換えてください。

機能 3: ドキュメントをインデックスに追加する方法

インデックスが作成されたので、add documents to index して検索可能にできます:

String YOUR_DOCUMENTS_FOLDER = "YOUR_DOCUMENT_DIRECTORY";

// Add all documents in directory to the index
index.add(YOUR_DOCUMENTS_FOLDER);

ヒント:

  • フォルダー パスが正しいこと、アプリケーションに読み取り権限があることを確認してください。
  • GroupDocs.Search は各ファイルからサポートされているメタデータを自動的に抽出します。

機能 4: メタデータでドキュメントを検索する

メタデータフィールドを対象としたクエリを実行します。例として、言語が English のドキュメントを検索する場合:

import com.groupdocs.search.results.SearchResult;

String query = "English";  // Define search query
SearchResult result = index.search(query);  // Perform the search

// Process results (example)
for (int i = 0; i < result.getDocumentCount(); i++) {
    System.out.println("Found document: " + result.getFoundDocument(i).getFilePath());
}
  • search(query) はインデックス化されたメタデータを検索し、一致するドキュメントを返します。
  • 著者名をクエリ文字列として使用すれば、search pdf by author も可能です。

実用的な活用例

  1. Enterprise Document Management(エンタープライズ文書管理): 契約日や署名者名で契約書を取得します。
  2. Digital Library Catalogs(デジタル図書館カタログ): ユーザーがジャンル、出版年、著者で本を閲覧できるようにします。
  3. CRM Systems(CRM システム): 顧客 ID や地域などのカスタムメタデータを使用して、クライアントファイルを迅速に検索します。

ヒントとベストプラクティス

  • Incremental Updates(インクリメンタル更新): 全インデックスを再構築する代わりに、index.addOrUpdate() を使用して新規または変更されたファイルを追加します。
  • Batch Processing(バッチ処理): 数千ファイルを扱う場合は、メモリ使用量を抑えるために小さなバッチで追加します。
  • Metadata Validation(メタデータ検証): クエリ対象とするメタデータが実際にソースドキュメントに含まれていることを確認します(例: PDF の author フィールド)。

パフォーマンスに関する考慮点

  • Memory Tuning(メモリ調整): インデックス化されたメタデータの量に応じて JVM ヒープサイズ(-Xmx)を調整します。
  • Optimized Storage(最適化ストレージ): 定期的に index.optimize() を呼び出し、インデックスを圧縮してクエリ速度を向上させます。

よくある問題と解決策

問題解決策
結果が返されない期待するメタデータフィールドがソースファイルに実際に存在することを確認してください。
権限エラーJava プロセスがドキュメントフォルダーとインデックスディレクトリの両方に対して読み取り権限を持っていることを確認してください。
メモリ不足エラーJVM ヒープサイズを増やすか、add 操作をバッチ化してファイルを小グループで処理してください。

よくある質問

Q: メタデータインデックスとは何ですか?
A: メタデータインデックスは、文書属性(著者、タイトル、カスタムタグ)を検索可能な構造に保存し、全文をスキャンせずに高速な検索を可能にします。

Q: 一時ライセンスはどうやって取得しますか?
A: GroupDocs の購入ページにアクセスし、手順に従ってトライアルライセンスを取得してください。

Q: この設定で PDF をインデックスできますか?
A: はい、GroupDocs.Search は PDF、DOCX、PPT など多数のフォーマットをサポートしています。

Q: ドキュメント追加時の一般的な問題は何ですか?
A: 正しいファイルパスを確認し、アプリケーションがディレクトリに対して読み取り権限を持っていることを確認してください。

Q: 検索パフォーマンスを最適化するには?
A: インデックスを定期的に更新し、インクリメンタル追加を使用し、JVM のメモリ設定を調整してください。

リソース


最終更新日: 2026-03-17
テスト環境: GroupDocs.Search Java 25.4
作者: GroupDocs