longフィルタの作成

LongFilterクラスは、フィルタリングするファイルに対してlong値を指定します。LongFilterは、ComparableValueFilterクラスを拡張します。

LongFilterは、Endeca.File.Sizeプロパティ(下の例で使用)などの数値プロパティに対して比較する値(longとして)を指定する比較フィルタです。このフィルタは、列挙を使用してオペランドの比較方法を指定する比較演算子を使用します。
  • EQUAL
  • GREATER
  • GREATER_EQUAL
  • LESS
  • LESS_EQUAL
  • NOT_EQUAL

たとえば、Endeca.File.Sizeプロパティに対してGREATER比較を実行するlong除外フィルタを作成すると、サイズが参照値より大きいファイルは除外されます。

longフィルタを作成するには:

  1. SourceConfigおよびCrawlConfigが作成されていることを確認します。
    たとえば、次のようになります。
    SourceConfig sourceConfig = new SourceConfig();
  2. 新しい空のLongFilterオブジェクトをインスタンス化します。
    LongFilter filter = new LongFilter();
  3. setPropertyName()メソッド(Filterクラスから継承)を使用して、適用するフィルタにプロパティの名前を設定します。
    // filter on the file size, which is in bytes
    filter.setPropertyName("Endeca.File.Size");
  4. setReferenceValue()メソッドを使用して、プロパティに対して比較するlong値を設定します。
    // exclude files larger than ~1GB
    filter.setReferenceValue(1000000000);
  5. setOperator()メソッド(ComparableValueFilterクラスから継承)をコールして、ファイルが参照値より大きいサイズを持つファイルのみに適用されるよう指定します。
    // exclude files with a size larger than the reference value
    filter.setOperator(ComparisonOperator.GREATER);
  6. setScope()メソッド(Filterクラスから継承)をコールして、フィルタ・スコープを設定します。ファイルまたはディレクトリ(FilterScope.DIRECTORY)への範囲を設定できます。
    たとえば、次のようになります。
    // set the scope of the filter for only files
    filter.setScope(FilterScope.FILE);
  7. Filterオブジェクトのリストを作成し、add()メソッドを使用してフィルタを追加します。
    List<Filter> filterList = new ArrayList<Filter>();  
    filterList.add(filter);
  8. SourceConfig.setExcludeFilters()メソッドを使用して、SourceConfig構成オブジェクトに移入されたリストを設定します。これが包含フィルタである場合、かわりにSourceConfig.setIncludeFilters()メソッドを使用します。
    // set the filter in the source config
    sourceConfig.setExcludeFilters(filterList);
  9. CrawlConfig.setSourceConfig()メソッドを使用して、移入されたSourceConfigをメインのCrawlConfig構成オブジェクトに設定します。
    // set the source config in the main config
    crawlConfig.setSourceConfig(sourceConfig);

LongFilterクラスには、long値を取得するgetReferenceValue()メソッドおよびEndecaプロパティを取得するgetPropertyName()が含まれています。また、SourceConfigクラスには、ソース構成からフィルタを取得するgetExcludeFilters()およびgetIncludeFilters()メソッドが含まれています。