ディープ・リンクURLへのフィルタの追加

データの初期状態をディープ・リンクURLの一部として設定するには、deeplinkパラメータをURLに追加します。

Studioは、ベース・フィルタ属性のフィルタを無視します。

ディープ・リンク・フィルタの基本形式の構文は次のとおりです。

http://<portalhost>:<port>/<pathToPage>?deeplink=[<dataState>]

ここで、<dataState>には、適用する次のいずれかのフィルタが含まれます。

deeplink=[{"queryFunctions": [<queryFunctionFilters>]}]

または

deeplink=[{"navByValue": {<navByValueFilters>}}]

ディープ・リンクが「タブ付きコンポーネント・コンテナ」の指定タブも指している場合(「タブ付きコンポーネント・コンテナの特定のタブへの移動」を参照)、完全なURL構文は次のとおりです。

http://<portalhost>:<port>/<pathToPage>?com.endeca.discovery.
pageTransitionTabState=<tabcomponentname>[<tabnumber>]&deeplink=[<dataState>]

フィルタでは、JSON構文を使用します。

queryFunctionsフィルタのタイプ

queryFunctionsパラメータには次のフィルタ・タイプを含めることができます。
  • DataSourceFilter
  • SelectionFilter
  • RefinementFilter
  • NegativeRefinementFilter
  • RangeFilter
  • SearchFilter

DataSourceFilter

DataSourceFilterではEQLを使用してデータをフィルタします。

DataSourceFilterは、「選択した絞込み」コンポーネントに追加されません。

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

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

これは、基本的にEQL文のWHERE句のコンテンツになります。

次に例を示します。

"Regions='Napa Valley' and P_Price<40"

属性名にドットなどのEQL予約文字が含まれる場合は、属性名を二重引用符で囲む必要があります。フィルタにJSON構文が使用されるため、バックスラッシュを使用してこれらの二重引用符をエスケープする必要があります。

次に例を示します。

"\"wine.region\"='Napa Value'"

EQL構文の詳細は、『Oracle Endeca Server EQLガイド』を参照してください。

viewKey EQLを実行するデータ・セットのキー名(表示名ではありません)。

次の例では、価格が40ドル未満のNapa Valley地域のレコードのみが表示されるようにデータがフィルタされます。

"queryFunctions":[{
"class":"DataSourceFilter",
"filterString":"Regions='Napa Valley' and P_Price<40",
"viewKey":"Wines"
}]

SelectionFilter

また、SelectionFilterも使用できます。SelectionFilterでは、DataSourceFilterと同じ構文が使用されます。また、DataSourceFilterと同様に、SelectionFilter「選択した絞込み」コンポーネントに追加されません。

次に例を示します。

"queryFunctions":[{
"class":"SelectionFilter",
"filterString":"WineType='White'",
"viewKey":"Wines"
}]

RefinementFilter

RefinementFilterは、所定の属性値を持つレコードを含むようにデータをフィルタするために使用されます。RefinementFilterのプロパティは次のとおりです。

プロパティ 説明
attributeValue 文字列

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

attributeKey 文字列

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

multiSelect AND |OR | NONE

複数選択属性の場合の、フィルタに同一の属性に対する複数の値が含まれる際の絞込み方法。

ANDに設定した場合は、一致するレコードに所定の値がすべて含まれる必要があります。

ORに設定した場合は、一致するレコードには所定の値のいずれか1つが含まれる必要があります。

NONEに設定した場合は、複数選択はサポートされません。絞込みには、最初の値のみが使用されます。

viewKey 属性を含むデータ・セットのキー名(表示名ではありません)。

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

"queryFunctions":[{
"class":"RefinementFilter",
"attributeValue":"1999",
"attributeKey":"Year",
"viewKey":"Wines"
}]

NegativeRefinementFilter

NegativeRefinementFilterは、所定の属性値を持つレコードを除外するようにデータをフィルタするために使用されます。NegativeRefinementFilterのプロパティは次のとおりです。

プロパティ 説明
attributeValue 文字列

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

attributeKey 文字列

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

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

絞込みに使用する値のタイプ。

デフォルトはSTRINGです。

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

attributeValueName 文字列

オプション。絞込みの「選択した絞込み」コンポーネントに表示する値。

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

選択した属性が、実際に保存されている値とは異なる値名を持つ管理対象属性である場合は、別の表示値を指定することもできます。

ancestors 文字列リスト

オプション。「選択した絞込み」コンポーネントに表示する祖先値の表示名のリスト。

管理対象属性値を値階層から選択する場合は、祖先値を指定することもできます。

viewKey 属性を含むデータ・セットのキー名(表示名ではありません)。

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

"queryFunctions":[{
"class":"NegativeRefinementFilter",
"attributeValue":"Washington",
"attributeKey":"Region",
"viewKey":"Wines"
}]

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

"queryFunctions":[{
"class":"NegativeRefinementFilter",
"attributeValue":"1997",
"attributeKey":"P_Year",
"attributeType":"LONG",
"viewKey":"Wines"
}]

次の例では、Outlet属性にCatererという値を含まないレコードのみが含まれるようにデータが絞り込まれます。Outletの値はコードとして保存されるため、絞込みに使用する表示名を指定します。また、Outletは階層属性であるため、絞込みでは、CatererがカテゴリRetail SalesのNonstore Retailersのサブカテゴリであることを示しています。

"queryFunctions":[{
"class":"NegativeRefinementFilter",
"attributeValue":"454210",
"attributeKey":"Outlet",
"attributeValueName":"Caterer",
"ancestors":"[\"Retail Sales\",\"Nonstore Retailers\"]",
"viewKey":"Wines"
}]

RangeFilter

RangeFilterは、指定の範囲内の属性値を持つレコードが含まれるようにデータをフィルタするために使用します。RangeFilterのプロパティは次のとおりです。

プロパティ 説明
attributeKey 文字列

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

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

使用する比較タイプ。

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

比較対象の値のタイプ。

selectionLevel YEAR | MONTH | DAY
rangeTypeDATEの場合、これは範囲に使用する日時サブセットになります。
  • YEAR: 範囲に年を使用します。これがデフォルトです。
  • MONTH: 範囲に年-月を使用します。
  • DAY: 範囲に年-月-日を使用します。
value1 数値

比較に使用する値。

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

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

value2 数値

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

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

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

value3 数値

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

viewKey 属性を含むデータ・セットのキー名(表示名ではありません)。

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

"queryFunctions":[{
"class":"RangeFilter",
"attributeKey":"P_Score",
"rangeOperator":"BTWN",
"rangeType":"INTEGER",
"value1":"80",
"value2":"100",
"viewKey":"Wines"
}]

SearchFilter

SearchFilterは、所定の検索条件を持つレコードが含まれるようにデータをフィルタするために使用されます。SearchFilterのプロパティは次のとおりです。

プロパティ 説明
searchInterface 文字列

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

検索インタフェースで関連ランキングをサポートしている場合は、特定のコンポーネントでの結果の表示順序が影響を受ける可能性があります。関連性ランキングが検索結果にどのように影響するかの詳細は、「「検索ボックス」検索の影響」を参照してください。

terms 文字列

検索の検索条件。

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

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

一致モードについては、「「検索ボックス」コンポーネントの検索オプションの構成」を参照してください。

searchWithin ブール値

絞り込んだデータ・セット内でのみ検索を実行するかどうか。

デフォルトはfalseで、これは、フィルタを適用せずに、データ・セット全体を検索することを意味します。

SearchFilterの前になんらかのフィルタを適用しており、フィルタ処理されたデータ内でのみ検索を実行する場合は、searchWithintrueに設定する必要があります。

enableSnippeting ブール値

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

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

snippetLength int型

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

enableSnippetingtrueの場合に必須。

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

viewKey 検索実行対象のデータ・セットのキー名(表示名ではありません)。

データ・セット・キーを指定しない場合、検索はすべてのデータ・ドメインに対して実行されます。

次の例では、フィルタでは、defaultの検索インタフェースを使用して、条件Californiaおよびredを検索します。一致レコードにはすべての検索条件が含まれている必要があるため、検索は現在の絞込み内でのみ実行されます。スニペットがサポートされている場合は、100文字のスニペットが表示されます。

"queryFunctions":[{
"class":"SearchFilter",
"searchInterface":"default",
"terms":"red, California",
"matchMode":"ALL",
"searchWithin":"true",
"enableSnippeting":"true",
"snippetLength":"100",
"viewKey":"Wines"
}]

管理対象属性に対するnavByValueフィルタの使用

ディープ・リンクURLでは、属性値に基づいてデータを絞り込むという点でRefinementFilterに似ている、navByValueフィルタもサポートされます。

navByValueフィルタのパラメータは次のとおりです。

プロパティ 説明
viewKey 属性を含むデータ・セットのキー名(表示名ではありません)。
values フィルタの属性値のリストを含みます。
"values":{
"attributeKey1":"value1",
"attributeKey2":"value2"
}

属性の複数値を指定するには、次の形式を使用します。

"values":{
"attributeKey":["value1","value2"]
}

次に例を示します。

"navByValue":{
   "viewKey":"Wines",
   "values":{
			    "Wine Type":"Red",
			    "Region":"Other France",
			    "Body":["Fresh","Full","Rich","Ripe"]
    }
}

ほとんどの場合、より高速で信頼性の高いRefinementFilterを使用する方が適しています。