提供されているQueryFunctionフィルタ・クラス

Big Data Discoveryでは、次のQueryFunctionフィルタ・クラスが提供されています。フィルタは、現在の問合せ状態の変更に使用されます。

使用可能なフィルタ・クラスは次のとおりです。

ここに記載した情報以外のQueryFunctionフィルタ・クラスの詳細は、Component SDK APIリファレンスを参照してください。

DataSourceFilter

フィルタリングを実行するためにEQLスニペットを使用します。DataSourceFilter絞込みは「選択した絞込み」パネルには追加されません。

使用可能なプロパティは次のとおりです。

プロパティ 説明
filterString フィルタ情報を含むEQLスニペット。

DataSourceFilterの場合、これは、EQL文のWHERE句のコンテンツになります。

EQL構文の詳細は、『EQLリファレンス』を参照してください。

たとえば、Napa Valley地域の40ドル未満の価格のレコードのみが表示されるようにデータをフィルタリングするには、次のようにします。

ExpressionBase expression = dataSource.parseLQLExpression("Region='Napa Valley' and P_Price<40");
DataSourceFilter dataSourceFilter = new DataSourceFilter(expression);

RefinementFilter

指定された属性値を持つレコードのみが含まれるようにデータをフィルタリングするために使用されます。RefinementFilter絞込みは「選択した絞込み」パネルに追加されます。

RefinementFilterのプロパティは次のとおりです。

プロパティ 説明
attributeValue String

絞込みに使用する属性値。

attributeKey String

属性キー。絞込みに使用する属性を識別します。

sourceCollectionKey String

データ・セットのキー。これは通常、default_edpから始まる長いエンコード値です。

multiSelect AND |OR | NONE
複数選択属性の場合の、フィルタに同一の属性に対する複数の値が含まれる場合の絞込み方法:
  • ANDに設定した場合は、一致するレコードに所定の値がすべて含まれる必要があります。
  • ORに設定した場合は、一致するレコードには所定の値のいずれか1つが含まれる必要があります。
  • NONEに設定した場合は、複数選択はサポートされません。絞込みには、最初の値のみが使用されます。

この設定は、データ・セットの属性に構成した絞込み動作と一致する必要があります。属性の絞込み動作の確認および構成のための「ビュー」ページの使用方法の詳細は、『データ検索および分析ガイド』を参照してください。

次の例では、Year属性に1999の値を持つレコードのみが含まれるようにデータが絞り込まれています。

RefinementFilter refinementFilter = new RefinementFilter("1999", "Year", "default_edp_cc7ea");

NegativeRefinementFilter

指定された属性値を持つレコードが除外されるようにデータをフィルタリングするために使用されます。NegativeRefinementFilter絞込みは「選択した絞込み」パネルに追加されます。

NegativeRefinementFilterのプロパティは次のとおりです。

プロパティ 説明
attributeValue String

絞込みに使用する属性値。

attributeKey String

属性キー。絞込みに使用する属性を識別します。

attributeType BOOLEAN | STRING | DOUBLE | LONG | GEOCODE | DATETIME | TIME | DURATION

絞込みに使用する値のタイプ。デフォルトはSTRINGです。

属性が、文字列以外のタイプである場合は、タイプを指定する必要があります。

attributeValueName String

オプション。絞込みの「選択した絞込み」パネルに表示する値。

attributeValueNameに値を指定しない場合は、「選択した絞込み」パネルにはattributeValueの値が表示されます。

ancestors サポートされません。
isAttributeSingleAssign Boolean

trueに設定した場合、この属性は値を1つのみ持つことができます。

falseに設定した場合、この属性は複数値を取ります。

属性が複数値かどうかを確認するための「ビュー」ページの使用方法の詳細は、『データ検索および分析ガイド』を参照してください。

sourceCollectionKey String

データ・セットのキー。これは通常、default_edpから始まる長いエンコード値です。

次の例では、Region属性にWashingtonという値を含まないレコードのみが含まれるようにデータが絞り込まれます。Regionは文字列属性のため、その他の構成は必要ありません。

NegativeRefinementFilter negativeRefinementFilter = new NegativeRefinementFilter("Region", "Washington");

次の例では、P_Year属性(単一割当て属性)に1997という値を持たないレコードのみが含まれるように、データが絞り込まれます。P_Yearは文字列属性でないため、属性タイプLONGが指定されます。

NegativeRefinementFilter negativeRefinementFilter = new NegativeRefinementFilter("P_Year", "1997", PropertyType.LONG, 
   true, "default_edp_cc7ea760");

RangeFilter

指定された範囲内の属性値を持つレコードのみが含まれるようにデータをフィルタリングするために使用されます。RangeFilter絞込みは「選択した絞込み」パネルに追加されます。

RangeFilterのプロパティは次のとおりです。

プロパティ 説明
attributeKey String

属性キー。フィルタに使用する属性を識別します。

rangeOperator LT | LTEQ |GT |GTEQ| BTWN |GCLT |GCGT | GCBTWN

使用する比較タイプ。

  • LT: 次より小さい
  • LTEQ: 次以下
  • GT: 次より大きい
  • GTEQ: 次以上
  • BTWN: 次の間。指定の範囲の値を包含
  • GCLT: 次より小さいジオコード
  • GCGT: 次より大きいジオコード
  • GCBTWN: 次の間のジオコード
rangeType DECIMAL | INTEGER | DATE | GEOCODE | TIME | DURATION

比較対象の値のタイプ。

value1 Numeric

比較に使用する値。

BTWNの場合、これは範囲の下限値になります。

ジオコード範囲演算子の場合、比較の原点になります。

value2 Numeric

BTWNの場合、これは範囲の上限値になります。

GCLTGCGTの場合、これは比較に使用する値です。

GCBTWNの場合、これは範囲の下限値になります。

value3 Numeric

GCBTWN演算子にのみ使用されます。範囲の上限値。

次の例では、P_Scoreの値が80から100までの間の数値であるレコードのみが含まれるようにデータが絞り込まれます。

RangeFilter rangeFilter = new RangeFilter("P_Score", RangeType.INTEGER, RangeOperator.BTWN, "80", "100");
RangeFilterを拡張する日時固有の次の範囲フィルタもあります。
  • DateRangeFilter
  • TimeRangeFilter
  • DurationRangeFilter

DateFilter

日付値のフィルタに使用されます。DateFilterを使用すると、日時値のサブセットでフィルタできます。たとえば、特定の年または特定の月のすべてのレコードを含む日付属性をフィルタできます。

DateFilterのプロパティは次のとおりです。

プロパティ 説明
dateFilters 適用する日付フィルタを表すDateFilterDimensionオブジェクトのリスト。
DateFilterDimensionオブジェクトは次のもので構成されます。
  • 各日付部分を識別するDatePart定数
  • 各日付部分の値を表す整数値

このフィルタは、指定された最も具体的な日付部分までのみをフィルタします。

次の例では、SalesDateが2006年6月15日のレコードのみが含まれるように、データが絞り込まれます。このフィルタでは年、月および日付のみを指定します。SalesDateのレコードに異なる時間、分、秒の値が含まれていても、2006年6月15日であればこのフィルタに一致します。

DateFilterDimension dfd = new DateFilterDimension();
dfd.addDatePartFilter(DatePart.YEAR, 2006);
dfd.addDatePartFilter(DatePart.MONTH, 6);
dfd.addDatePartFilter(DatePart.DAY_OF_MONTH, 15);
DateFilter dateFilter = new DateFilter("SalesDate", dfd);

LastNDateFilter

日付属性に最近のn年間、nか月間またはn日間である値を持つレコードを含む日付をフィルタするために使用されます。

LastNDateFilterのプロパティは次のとおりです。

プロパティ 説明
attributeKey 属性のキー名。
ticksBack 結果のレコードに含む年数、月数または日数。
datePart フィルタ処理に使用する日付部分。有効な値は、次のとおりです。
  • YEAR
  • MONTH
  • DAY_OF_MONTH
  • HOUR
  • MINUTE
  • SECOND
sourceCollectionKey String

データ・セットのキー。これは通常、default_edp....から始まる長いエンコード値です。

次の例では、SalesDateに過去3年間の値を持つレコードのみが含まれるように、データが絞り込まれます。

LastNDateFilter lastNDateFilter = new LastNDateFilter("SalesDate", 3, DatePart.YEAR);

GeoFilter

ジオコード値が特定の場所から特定の距離内にある値を持つレコードを含むデータをフィルタするために使用されます。

GeoFilterのプロパティは次のとおりです。

プロパティ 説明
attributeKey ジオコード属性のキー名。
rangeOperator 比較演算子。
value1 開始位置として使用するジオコード値。
radius 検索するマイル数またはキロ数。
locationName 開始位置として使用する場所の名前。
unit 比較の距離の単位(miまたはkm)。

SearchFilter

指定された検索用語が見つかったレコードを含めるように、データをフィルタリングするために使用されます。SearchFilter絞込みは「選択した絞込み」パネルに追加されます。

SearchFilterのプロパティは次のとおりです。

プロパティ 説明
searchInterface String

使用する検索インタフェースの名前またはテキスト検索に有効な属性の名前のいずれか。

terms String

検索用語。

matchMode ALL | PARTIAL | ANY | ALLANY | ALLPARTIAL | PARTIALMAX | BOOLEAN

検索に使用する一致モード。

enableSnippeting Boolean

スニペットを有効化するかどうか。

オプション。指定しない場合は、デフォルトでfalseになります。

snippetLength Integer

スニペットに含める文字数。

enableSnippetingtrueの場合に必須。

スニペットを有効化するには、enableSnippetingtrueに設定し、snippetLengthに値を指定します。

次の例では、default検索インタフェースを使用して、Californiaおよびredという用語を検索します。一致するレコードは、すべての検索用語を含んでいる必要があります。スニペットがサポートされている場合は、100文字のスニペットが表示されます。

SearchFilter.Builder builder = new SearchFilter.Builder("default", "California red");
builder.matchMode(MatchMode.ALL);
builder.enableSnippeting(true);
builder.snippetLength(100);
SearchFilter searchFilter = builder.build();