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

増え続けるドキュメントリポジトリの管理はすぐに圧倒的になる可能性があります。特定のドキュメントタイプだけをインデックスしたり、不要なファイルを除外したりする必要がある場合、java file extension filter は処理対象を細かく制御できます。このガイドでは GroupDocs.Search for Java の設定方法を説明し、ファイル拡張子フィルタを論理 AND、OR、NOT 演算子や日付範囲、パスフィルタと組み合わせる方法を示します。

クイック回答

  • What is the java file extension filter? GroupDocs.Search に対し、インデックス作成時に含めるまたは除外するファイル拡張子を指示する設定です。
  • Which library provides this feature? GroupDocs.Search for Java。
  • Do I need a license? 評価には無料トライアルで十分ですが、本番環境ではフルライセンスが必要です。
  • Can I combine filters? はい – 拡張子、日付、サイズ、パスフィルタを AND、OR、NOT ロジックで連結できます。
  • Is it Maven‑compatible? もちろんです – pom.xml に GroupDocs.Search の依存関係を追加してください。

はじめに

増え続けるファイルリポジトリを効率的に管理するのに苦労していますか?ドキュメントをタイプ別に整理したり、インデックス作成時に不要なファイルを除外したりする必要がある場合、適切なツールがなければ作業は困難です。GroupDocs.Search for Java は強力なファイルフィルタリング機能を備えた高度な検索ライブラリで、これらの課題をシンプルにします。このチュートリアルでは、GroupDocs.Search を使用した .NET File Filtering 手法の実装方法を解説し、論理 AND、OR、NOT フィルタに焦点を当てます。

学べること

  • Java 環境で GroupDocs.Search を設定する
  • さまざまなフィルタの実装:ファイル拡張子、論理演算子(AND、OR、NOT)、作成時間、更新時間、ファイルパス、長さ
  • 効率的なドキュメント管理のためのフィルタの実践的な活用例
  • 大規模インデックス作成タスク向けのパフォーマンス最適化のヒント

Java でファイルフィルタリングの可能性を最大限に引き出す準備はできましたか?まずは前提条件を確認しましょう。

前提条件

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

必要なライブラリと依存関係

  • GroupDocs.Search for Java: バージョン 25.4 以降
  • Java Development Kit (JDK): システムに互換性のあるバージョンがインストールされていることを確認してください

環境設定

  • 統合開発環境 (IDE): IntelliJ IDEA、Eclipse、または Maven プロジェクトをサポートする任意の IDE を使用してください。

知識の前提条件

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

GroupDocs.Search for Java の設定

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

Maven 設定

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>

直接ダウンロード

あるいは、GroupDocs.Search for Java releases から最新バージョンを直接ダウンロードしてください。

ライセンス取得

  1. Free Trial: 無料トライアルで GroupDocs.Search の機能を試す。
  2. Temporary License: 制限なしでフル機能を利用できる一時ライセンスを申請する。
  3. Purchase: 長期利用のためにサブスクリプションを購入する。

基本的な初期化と設定

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

import com.groupdocs.search.*;

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

実装ガイド

それでは、GroupDocs.Search を使用してさまざまなファイルフィルタ機能を実装する方法を見ていきましょう。

ファイル拡張子フィルタリング

インデックス作成時に拡張子でファイルをフィルタリングします。この機能は FB2、EPUB、TXT など特定のドキュメントタイプのみを処理したい場合に便利です。

概要

カスタムフィルタ設定を使用して、ファイル拡張子に基づいてドキュメントをフィルタリングします。

実装手順

  1. Create Filter:

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. Initialize Index and Add Documents:

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

論理 NOT フィルタ

インデックス作成時に HTM、HTML、PDF など特定のファイル拡張子を除外します。

実装手順

  1. Create Exclusion Filter:

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Apply to Index Settings:

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. Add Documents:

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

論理 AND フィルタ

複数の条件を組み合わせ、すべての条件を満たすファイルのみを含めます。

概要

論理 AND 演算を使用して、作成時間、ファイル拡張子、長さに基づいてファイルをフィルタリングします。

実装手順

  1. Define Filters:

    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. Combine Filters:

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. Index Documents:

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

論理 OR フィルタ

論理 OR 演算を使用して、指定された条件のいずれかを満たすファイルを含めます。

実装手順

  1. Define Filters:

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. Combine Filters with Logical Conditions:

    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. Finalize OR Filter:

    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");
    

作成時間フィルタ

作成時間に基づいてファイルをフィルタリングし、指定された日付範囲内のものだけを含めます。

実装手順

  1. Define Date Range Filter:

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. Index Documents:

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

更新時間フィルタ

特定の日付以降に更新されたファイルを除外します。

実装手順

  1. Define Filter:

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. Index Documents:

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

ファイルパスフィルタリング

ファイルパスに基づいてファイルをフィルタリングし、特定のディレクトリにあるものだけを含めます。

実装手順

  1. Define File Path Filter:

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. Initialize Index and Add Documents:

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

よくある落とし穴とヒント

  • 絶対パスと相対パスを同じフィルタ設定で混在させないでください – 予期しない除外が発生する可能性があります。
  • IndexSettings をリセットすることを忘れないでください。フィルタセットを切り替える際にリセットしないと、以前のフィルタが残ってしまいます。
  • 大規模なファイルコレクションでは、長さの上限と拡張子フィルタを組み合わせることでメモリ使用量を抑えることができます。

よくある質問

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

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

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

Q: java file extension filter をカスタム正規表現フィルタと組み合わせることは可能ですか?
A: もちろんです。DocumentFilter.createAnd() の中で正規表現フィルタを拡張子フィルタと共にラップできます。

Q: 多数のフィルタを追加するとパフォーマンスにどのような影響がありますか?
A: 追加のフィルタごとにインデックス作成時のオーバーヘッドは小さいですが、インデックスサイズの削減効果がコストを上回ることが多いです。サンプルデータでテストし、最適なバランスを見つけてください。


最終更新日: 2025-12-19
テスト環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs