正規表現フィルタの作成

RegexFilterクラスは、包含または除外フィルタとして正規表現を指定します。

RegexFilterは、特定のレコード・プロパティに正規表現を適用するフィルタです。一致では、デフォルトで大文字と小文字を区別します(これはAPIで構成できません)。下の例では、フィルタは、Endeca.FileSystem.Nameプロパティに適用されます。

IASはSunのjava.util.regexパッケージを実装しており、正規表現のパターンを解析して照合します。したがって、サポートされている正規表現構成は、次のURLにあるjava.util.regex.Patternクラスのドキュメント・ページにあるものと同じです。
http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html
これは、次のコンストラクトのいずれかを使用できることを意味します。
  • エスケープ文字(タブ文字を表す\tなど)。
  • 文字クラス(単純、否定、範囲、積集合、減算)。たとえば、[^abc]はa、bまたはc以外の任意の文字と一致することを意味し、[a-zA-Z]は任意の大文字または小文字に一致することを意味します。
  • 事前定義済の文字クラス(数字を表す\dや空白文字を表す\sなど)。
  • POSIX文字クラス(US-ASCIIのみ)。英文字を表す\p{Alpha}、英数字を表す\p{Alnum}、句読点を表す\p{Punct}など。
  • 境界マッチャー(行の開始を表す^、行の終了を表す$、語境界を表す\bなど)。
  • 論理演算子(XとYのいずれかを表すX|Y)。
有効な構成の完全なリストは、前述のPatternクラスのドキュメント・ページを参照してください。

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

  1. SourceConfig(次の例を参照)およびCrawlConfigが作成されていることを確認します。
    SourceConfig sourceConfig = new SourceConfig();
  2. 新しい空のRegexFilterオブジェクトをインスタンス化します。
    RegexFilter filter = new RegexFilter();
  3. setPropertyName()メソッド(Filterクラスから継承)を使用して、適用するフィルタにプロパティの名前を設定します。
    たとえば、次のようになります。
    // Filter on the file name.
    filter.setPropertyName("Endeca.FileSystem.Name");
  4. setRegex()メソッドをコールして、正規表現を設定します。
    たとえば、次のようになります。
    // Exclude executable and help files.
    filter.setRegex(".*\.(exe|bin|dll|hlp)$");
  5. setScope()メソッド(Filterクラスから継承)を使用して、フィルタ・スコープを設定します。ファイル(次の例を参照)またはディレクトリ(FilterScope.DIRECTORY)への範囲を設定できます。
    たとえば、次のようになります。
    // Set the scope of the filter for only files.
    filter.setScope(FilterScope.FILE);
  6. Filterオブジェクトのリストを作成して、regexフィルタをそこに追加します。
    たとえば、次のようになります。
    List<Filter> filterList = new ArrayList<Filter>();  
    filterList.add(filter);
  7. SourceConfig.setExcludeFilters()メソッドを使用して、SourceConfig構成オブジェクトに移入されたリストを設定します。これが包含フィルタである場合、かわりにSourceConfig.setIncludeFilters()メソッドを使用します。
    たとえば、次のようになります。
    // Set the filter in the source configuration.
    sourceConfig.setExcludeFilters(filterList);
  8. CrawlConfig.setSourceConfig()メソッドを使用して、移入されたSourceConfigをメインのCrawlConfig構成オブジェクトに設定します。
    // Set the source config in the crawl configuration.
    crawlConfig.setSourceConfig(sourceConfig);

RegexFilterクラスには、regex値を取得するgetRegex()メソッドが含まれています。また、SourceConfigクラスには、ソース構成からフィルタを取得するgetExcludeFilters()およびgetIncludeFilters()メソッドが含まれています。