Java リリース". Keep link format.

Also keep bold .

Proceed section by section.

Let’s produce final Japanese markdown.

Be careful with bullet points and code block placeholders.

Let’s start.

Mastering the java file extension filter with GroupDocs.Search

Translate: “GroupDocs.Searchでjavaファイル拡張子フィルタをマスターする”. Use natural Japanese.

Proceed.

I’ll write translation.

GroupDocs.Search で java ファイル拡張子フィルタをマスターする

ドキュメントが増えていくと、特定のファイルタイプだけをインデックス化したい場合に管理がすぐに手に負えなくなります。java ファイル拡張子フィルタ を使用すると、GroupDocs.Search に対してインクルードまたはエクスクルードする拡張子を正確に指定でき、インデックス化パイプラインを細かく制御できます。このガイドでは、GroupDocs.Search for Java の設定方法を順に解説し、ファイル拡張子フィルタを論理 AND、OR、NOT 演算子と組み合わせる方法、さらに日付範囲やパスフィルタとの併用方法を紹介します。

Quick Answers

  • java ファイル拡張子フィルタとは? インデックス作成時に、どのファイル拡張子をインクルードまたはエクスクルードするかを GroupDocs.Search に指示する設定です。
  • この機能を提供しているライブラリは? GroupDocs.Search for Java。
  • ライセンスは必要ですか? 評価用の無料トライアルで試すことができますが、本番環境では正式ライセンスが必要です。
  • フィルタを組み合わせられますか? はい。拡張子、日付、サイズ、パスフィルタを AND、OR、NOT ロジックでチェーンできます。
  • Maven に対応していますか? 完全に対応しています。pom.xml に GroupDocs.Search の依存関係を追加してください。

What is a java file extension filter?

java ファイル拡張子フィルタ は、インデックスエンジンに送られる前に各ファイルの拡張子を評価するルールセットです。.txt.pdf.epub などの拡張子を指定することで、拡張子でファイルをインクルード または 拡張子でファイルをエクスクルード でき、インデックスを目的に合わせて絞り込み、検索結果の関連性を高められます。

Why use file‑extension filtering with GroupDocs.Search?

  • パフォーマンス: 不要なファイルをスキップすることで I/O が削減され、インデックス作成が高速化します。
  • ストレージ削減: 関連するドキュメントだけがインデックスに保存され、ディスク使用量が減ります。
  • コンプライアンス: 機密情報やサポート外のファイルタイプが誤ってインデックスされるのを防止します。
  • 柔軟性: date range filter java 機能と組み合わせて、特定期間に作成または更新されたファイルだけを対象にできます。

Prerequisites

開始する前に、以下が揃っていることを確認してください。

Required Libraries and Dependencies

  • GroupDocs.Search for Java: バージョン 25.4 以降
  • Java Development Kit (JDK): 対応バージョンがインストール済み

Environment Setup

  • 統合開発環境 (IDE): IntelliJ IDEA、Eclipse、または Maven 対応の任意の IDE

Knowledge Prerequisites

  • 基本的な Java プログラミング
  • Java におけるファイル I/O の知識
  • 正規表現と日付・時刻処理の理解

Setting Up GroupDocs.Search for Java

GroupDocs.Search を使用開始するには、プロジェクトに依存関係として追加する必要があります。

Maven Configuration

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>

Direct Download

あるいは、GroupDocs.Search for Java リリース から最新バージョンを直接ダウンロードできます。

License Acquisition

  1. Free Trial – コストなしで機能を試せます。
  2. Temporary License – 限定期間のフル機能を利用できます。
  3. Purchase – 本番環境向けの永続ライセンスを取得します。

Basic Initialization and Setup

ライブラリを追加したら、インデックス環境を初期化します。

import com.groupdocs.search.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);

Implementation Guide

以下では各フィルタタイプを詳しく解説し、なぜ重要か を説明したうえで、プロジェクトにコピペできるステップバイステップのコード例を提示します。

File Extension Filtering

インデックス作成時に拡張子でファイルをフィルタリングします。電子書籍(.fb2.epub)やプレーンテキスト(.txt)だけを処理したい場合に最適です。

Overview

DocumentFilter.createFileExtension を使用してホワイトリスト方式で拡張子を指定します。

Implementation Steps

  1. フィルタ作成:

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. インデックス初期化とドキュメント追加:

    Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings);
    index.add("YOUR_DOCUMENT_DIRECTORY");
    

Logical NOT Filter

検索シナリオで不要な拡張子(例: Web ページや PDF)を除外します。

Implementation Steps

  1. 除外フィルタ作成:

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. インデックス設定へ適用:

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. ドキュメント追加:

    Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot);
    indexNot.add("YOUR_DOCUMENT_DIRECTORY");
    

Logical AND Filter

作成日、拡張子、ファイルサイズなど複数条件を組み合わせ、すべての条件を満たすファイルだけ をインデックス化します。

Overview

DocumentFilter.createAnd が複数フィルタを単一ルールに統合します。

Implementation Steps

  1. フィルタ定義:

    DocumentFilter filter1 = DocumentFilter.createCreationTimeRange(Utils.createDate(2015, 1, 1), Utils.createDate(2016, 1, 1));
    DocumentFilter filter2 = DocumentFilter.createFileExtension(".txt");
    DocumentFilter filter3 = DocumentFilter.createFileLengthUpperBound(8 * 1024 * 1024);
    
  2. フィルタ結合:

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. ドキュメントインデックス:

    Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd);
    indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
    

Logical OR Filter

指定した条件の いずれか を満たすファイルをインクルードします。小さなテキストファイルと大きな非テキストファイルの両方を対象にしたい場合に便利です。

Implementation Steps

  1. フィルタ定義:

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. 論理条件で結合:

    DocumentFilter bound5Filter = DocumentFilter.createFileLengthUpperBound(5 * 1024 * 1024);
    DocumentFilter bound10Filter = DocumentFilter.createFileLengthUpperBound(10 * 1024 * 1024);
    
    DocumentFilter txtSizeFilter = DocumentFilter.createAnd(txtFilter, bound5Filter);
    DocumentFilter notTxtSizeFilter = DocumentFilter.createAnd(notTxtFilter, bound10Filter);
    
  3. OR フィルタ確定:

    DocumentFilter finalFilterOr = DocumentFilter.createOr(txtSizeFilter, notTxtSizeFilter);
    
    IndexSettings settingsOr = new IndexSettings();
    settingsOr.setDocumentFilter(finalFilterOr);
    Index indexOr = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalOrFilter", settingsOr);
    indexOr.add("YOUR_DOCUMENT_DIRECTORY");
    

Creation Time Filters

特定期間内に作成されたファイルを対象にする、典型的な date range filter java シナリオです。

Implementation Steps

  1. 日付範囲フィルタ定義:

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. ドキュメントインデックス:

    Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime);
    indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
    

Modification Time Filters

あるカットオフ日以降に更新されたファイルを除外します。

Implementation Steps

  1. フィルタ定義:

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. ドキュメントインデックス:

    Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime);
    indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
    

File Path Filtering

特定フォルダやパターンに一致するファイルのみをインデックス対象に制限します。特定ディレクトリ階層内で include files by extension したい場合に最適です。

Implementation Steps

  1. ファイルパスフィルタ定義:

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. インデックス初期化とドキュメント追加:

    Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath);
    indexPath.add("YOUR_DOCUMENT_DIRECTORY");
    

Common Pitfalls & Tips

  • 絶対パスと相対パスを同一フィルタ設定で混在させない – 予期しない除外が発生する可能性があります。
  • フィルタセットを切り替える際は IndexSettings をリセット してください。リセットしないと以前のフィルタが残ります。
  • 拡張子フィルタとサイズ上限を組み合わせる と、大規模コレクションでメモリ使用量を抑えられます。
  • ロギングを有効化 (LoggingOptions.setEnabled(true)) すると、ファイルが除外された理由を確認できます。

Frequently Asked Questions

Q: インデックス作成後にフィルタ条件を変更できますか?
A: はい。新しい DocumentFilter でインデックスを再構築するか、設定を更新したインクリメンタルインデックスを使用してください。

Q: java ファイル拡張子フィルタは圧縮アーカイブ(例: ZIP)にも適用されますか?
A: GroupDocs.Search はサポートされているアーカイブ形式をインデックス化できますが、拡張子フィルタはアーカイブ自体に対して適用され、内部ファイルには適用されません。内部ファイルを制御したい場合は、ネストされたフィルタを使用してください。

Q: 特定のファイルが除外された理由をデバッグする方法は?
A: ライブラリのロギングを有効にし(LoggingOptions.setEnabled(true))、ログを確認してください。どのフィルタがファイルを拒否したかが記録されています。

Q: java ファイル拡張子フィルタとカスタム正規表現フィルタを組み合わせられますか?
A: もちろん可能です。拡張子フィルタと共に正規表現フィルタを DocumentFilter.createAnd() でラップすれば実現できます。

Q: 多数のフィルタを追加するとパフォーマンスに影響しますか?
A: 各フィルタはインデックス作成時にわずかなオーバーヘッドを加えますが、インデックス対象データが減少することで得られる効果が通常は上回ります。代表的なサンプルでテストし、最適なバランスを見つけてください。


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