Java のインデックス作成方法 – GroupDocs で高速ドキュメント検索
効率的に how to index java ファイルをインデックスする方法を知りたい場合、ここが適切な場所です。今日のデータ駆動型の世界では、適切なドキュメントを素早く見つけることで、手作業にかかる時間を何時間も節約できます。GroupDocs.Search for Java は、フォルダー内のファイルを検索可能なインデックスに変換するシンプルな方法を提供し、数行のコードでインデックスへのドキュメント追加、インデックスからのドキュメント削除、ファイルシステムからのドキュメント読み込みを可能にします。
以下に、必要なセットアップからインデックスの作成・データ投入、キーワード検索の実行、削除などのクリーンアップ操作までのステップバイステップの手順を示します。さっそく始めましょう!
Quick Answers
- What is the primary purpose? Java ドキュメントを効率的にインデックスし検索することです。
- Which library is required? GroupDocs.Search for Java (v25.4 以上)。
- Do I need a license? 無料トライアルまたは一時ライセンスが利用可能です。製品環境では永続ライセンスが必要です。
- Can I delete documents from the index? はい、ドキュメントキーを使用して
deleteメソッドで削除できます。 - Is Apache Commons IO mandatory? ファイル操作ユーティリティとして推奨されています。
“how to index java” とは?
Java ドキュメントのインデックス作成とは、ドキュメントの内容を検索可能な用語にマッピングした検索可能なデータ構造(インデックス)を作成し、キーワードクエリに基づいて関連ファイルを迅速に取得できるようにすることです。
Why use GroupDocs.Search for Java?
- Speed: 最適化されたアルゴリズムにより、大規模コレクションでも高速なクエリ結果が得られます。
- Scalability: パフォーマンスを犠牲にせず、数千件のドキュメントを処理できます。
- Flexibility: 多くのファイル形式をサポートし、大きなファイルに対しては遅延ロードを提供します。
- Ease of integration: シンプルな Maven 設定と、クリーンで直感的な API を提供します。
Prerequisites
- GroupDocs.Search for Java(バージョン 25.4 以上)。
- Apache Commons IO(便利なファイルユーティリティ用)。
- JDK 8 以上と、IntelliJ IDEA や Eclipse などの IDE。
- 基本的な Java の知識、オプションで Maven の知識。
Setting Up GroupDocs.Search for Java
Maven configuration
Add the repository and dependency to your pom.xml:
<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>
Pro tip: バージョン番号を最新リリースと同期させ、パフォーマンス向上の恩恵を受けましょう。
Direct download (if you prefer not to use Maven)
Maven を使用したくない場合は、公式サイトから最新の JAR をダウンロードすることもできます: GroupDocs.Search for Java releases.
License acquisition
- Free trial: ライセンスキーなしでライブラリをテストできます。
- Temporary license: 長期評価用にリクエストできます。
- Full license: 本番環境での導入には必須です。
Basic initialization
Create a simple Java class to verify that the library loads correctly:
import com.groupdocs.search.*;
public class DocumentIndexing {
public static void main(String[] args) {
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
このプログラムを実行すると、インデックスフォルダーが準備完了であることを示す確認メッセージが出力されます。
How to add documents to index
Step 1: Create an index folder
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments", true);
- 最初の引数は、インデックスファイルが保存されるフォルダーです。
- 2 番目の引数 (
true) は、フォルダーが存在しない場合に作成し、既存のインデックスを自動的に更新するよう GroupDocs に指示します。
Step 2: Load a document from a stream and add it
String filePath = "YOUR_DOCUMENT_DIRECTORY\\English.docx";
DocumentLoader documentLoader = new DocumentLoader(filePath);
Document document = Document.createLazy(DocumentSourceKind.Stream, documentLoader.getDocumentKey(), documentLoader);
Document[] documents = new Document[]{document};
index.add(documents, new IndexingOptions());
DocumentLoader(後述)はファイルを読み取り、ユニークなキーを提供します。createLazyは大きなファイルを効率的に処理し、必要なときにのみコンテンツをロードすることを保証します。
How to load documents from filesystem
以下は、ディスク上の任意のファイルを読み取り、バイト配列を抽出し、インデックス作成の準備ができた Document オブジェクトを構築する再利用可能なローダーです。
class DocumentLoader {
private final String filePath;
private final String documentKey;
public DocumentLoader(String filePath) {
this.filePath = filePath;
documentKey = FilenameUtils.getName(filePath);
}
public String getDocumentKey() { return documentKey; }
public Document loadDocument() throws IOException {
Path path = Paths.get(filePath);
byte[] buffer = Files.readAllBytes(path);
ByteArrayInputStream stream = new ByteArrayInputStream(buffer);
return Document.createFromStream(documentKey, new Date(System.currentTimeMillis()), "." + FilenameUtils.getExtension(filePath), stream);
}
}
Why this matters: 専用のローダーを使用することで、ファイルシステムに関する処理をインデックスロジックから分離でき、コードがよりクリーンでテストしやすくなります。
How to perform keyword search in an index
String query = "moment";
SearchResult searchResult1 = index.search(query);
- 任意のテキスト文字列を
searchに渡すと、該当するドキュメント ID、スニペット、関連度スコアを含むSearchResultが返されます。
How to delete documents from index
String[] documentKeys = new String[]{documentLoader.getDocumentKey()};
DeleteResult deleteResult = index.delete(new UpdateOptions(), documentKeys);
- 削除したいドキュメントのキーを指定します。
UpdateOptionsを使用すると、削除の適用方法(即時かバッチかなど)を制御できます。
How to retrieve indexed documents after deletions
DocumentInfo[] indexedDocuments2 = index.getIndexedDocuments();
- この呼び出しは、インデックス内に現在残っているドキュメントのリストを返し、削除が成功したことを確認するのに役立ちます。
Practical Applications
GroupDocs.Search for Java は次のようなシナリオで活躍します:
- Enterprise document portals – 従業員がポリシー、契約書、マニュアルなどを数秒で見つけられます。
- Legal case management – 弁護士が数千件の PDF や Word ファイルから先例条項を迅速に検索できます。
- Digital libraries – 大学が研究論文や学位論文に対して全文検索を提供します。
Performance Considerations
- Regularly optimize バルク更新後にインデックス (
index.optimize()) を定期的に最適化し、クエリ速度を高く保ちます。 - Leverage lazy loading 大容量ファイルに対して遅延ロードを活用し、OutOfMemory エラーを回避します。
- Tune JVM heap ドキュメントサイズ分布に基づいて JVM ヒープを調整します。一般的な設定では中規模ワークロードに
-Xmx2gを使用します。
Common Issues and Solutions
| Issue | Cause | Solution |
|---|---|---|
| 結果が返らない | クエリ語がインデックスされていない、またはストップワードが除外されている | IndexingOptions を確認し、ストップワードリストを調整する |
| メモリ不足エラー | 大きなファイルを即時にロードしている | Document.createLazy に切り替えるか、JVM ヒープを増やす |
| 削除したドキュメントがまだ表示される | 削除後にインデックスが更新されていない | index.optimize() を呼び出すか、インデックスインスタンスを再オープンする |
Frequently Asked Questions
Q: PDFs、DOCX、PPTX を同時にインデックスできますか?
A: はい、GroupDocs.Search は多数のフォーマットを標準でサポートしています。
Q: “delete documents from index” は内部でどのように動作しますか?
A: delete メソッドは指定されたドキュメントキーのポスティングを削除し、内部構造を更新するため、インデックス全体を再構築せずに一貫性が保たれます。
Q: インデックスサイズを監視する方法はありますか?
A: index.getStatistics() を使用して、ドキュメント数、総サイズ、その他の有用な指標を取得できます。
Q: 各削除後にインデックス全体を再構築する必要がありますか?
A: いいえ。削除はインクリメンタルに行われ、影響を受けたエントリだけが削除されます。
Q: スキーマ変更後にすべてのファイルを再インデックスする必要がある場合は?
A: 別のフォルダーを指す新しい Index インスタンスを作成し、すべてのドキュメントを再度追加します。
Conclusion
これで、GroupDocs.Search for Java を使用して how to index java ドキュメントをインデックスするための完全なロードマップが手に入りました。環境設定、インデックスへのドキュメント追加、ファイルシステムからのロード、検索の実行、削除とインデックス内容の検証までの手順をアプリケーションに組み込むことで、ドキュメントの検索性と全体的な生産性が大幅に向上します。
Next steps:
- 複雑なクエリ(ワイルドカード、ファジーマッチング)を試してみましょう。
- ファセット検索、カスタムアナライザー、メタデータインデックスなどの高度な機能を探求しましょう。
インデックス作成を楽しんでください!
最終更新日: 2026-03-01
テスト環境: GroupDocs.Search Java 25.4
作者: GroupDocs