データの初期状態をディープ・リンク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構文を使用します。
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では、DataSourceFilterと同じ構文が使用されます。また、DataSourceFilterと同様に、SelectionFilterは「選択した絞込み」コンポーネントに追加されません。
次に例を示します。
"queryFunctions":[{ "class":"SelectionFilter", "filterString":"WineType='White'", "viewKey":"Wines" }]
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のプロパティは次のとおりです。
プロパティ | 説明 |
---|---|
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のプロパティは次のとおりです。
プロパティ | 説明 |
---|---|
attributeKey | 文字列
属性キー。フィルタに使用する属性を識別します。 |
rangeOperator | LT | LTEQ |GT |GTEQ| BTWN |GCLT |GCGT | GCBTWN
使用する比較タイプ。
|
rangeType |
DECIMAL | INTEGER | DATE | GEOCODE | TIME | DURATION
比較対象の値のタイプ。 |
selectionLevel | YEAR | MONTH | DAY
rangeTypeがDATEの場合、これは範囲に使用する日時サブセットになります。
|
value1 | 数値
比較に使用する値。 BTWNの場合、これは範囲の下限値になります。 ジオコード範囲演算子の場合、比較の原点になります。 |
value2 | 数値
BTWNの場合、これは範囲の上限値になります。 GCLTとGCGTの場合、これは比較に使用する値です。 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のプロパティは次のとおりです。
プロパティ | 説明 |
---|---|
searchInterface | 文字列
使用する検索インタフェースの名前またはテキスト検索に有効な属性の名前のいずれか。 検索インタフェースで関連ランキングをサポートしている場合は、特定のコンポーネントでの結果の表示順序が影響を受ける可能性があります。関連性ランキングが検索結果にどのように影響するかの詳細は、「「検索ボックス」検索の影響」を参照してください。 |
terms | 文字列
検索の検索条件。 |
matchMode | ALL | PARTIAL | ANY | ALLANY | ALLPARTIAL | PARTIALMAX | BOOLEAN
検索に使用する一致モード。 一致モードについては、「「検索ボックス」コンポーネントの検索オプションの構成」を参照してください。 |
searchWithin | ブール値
絞り込んだデータ・セット内でのみ検索を実行するかどうか。 デフォルトはfalseで、これは、フィルタを適用せずに、データ・セット全体を検索することを意味します。 SearchFilterの前になんらかのフィルタを適用しており、フィルタ処理されたデータ内でのみ検索を実行する場合は、searchWithinをtrueに設定する必要があります。 |
enableSnippeting | ブール値
スニペットを有効化するかどうか。 オプション。指定しない場合は、デフォルトでfalseになります。 |
snippetLength | int型
スニペットに含める文字数。 enableSnippetingがtrueの場合に必須。 スニペットを有効化するには、enableSnippetingをtrueに設定し、snippetLengthに値を指定します。 |
viewKey | 検索実行対象のデータ・セットのキー名(表示名ではありません)。
データ・セット・キーを指定しない場合、検索はすべてのデータ・ドメインに対して実行されます。 |
次の例では、フィルタでは、defaultの検索インタフェースを使用して、条件Californiaおよびredを検索します。一致レコードにはすべての検索条件が含まれている必要があるため、検索は現在の絞込み内でのみ実行されます。スニペットがサポートされている場合は、100文字のスニペットが表示されます。
"queryFunctions":[{ "class":"SearchFilter", "searchInterface":"default", "terms":"red, California", "matchMode":"ALL", "searchWithin":"true", "enableSnippeting":"true", "snippetLength":"100", "viewKey":"Wines" }]
ディープ・リンク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を使用する方が適しています。