親および子のデータソースの構成

Studioのデータソースには親と子を設定できます。子データソースは、基本的に、親データソースのサブセットです。

たとえば、親データソースには、ある会社に関するトランザクション・レコードがすべて含めることができます。子データソースには、合衆国のトランザクション・レコードのみを含めることができます。

子データソース自体が子を持つこともできます。たとえば、合衆国のトランザクションを含む子データソースに、ニューヨークのトランザクションや、特定のディストリビュータが処理したトランザクションのみを含む子データソースを設定できます。

関連するデータソースに対する絞込みが現在のデータソースに影響するかどうかを構成できます。

子データソースの作成

子データソースは、通常、その親データソースと同一のサーバー、ポートおよびデータ・ドメイン名を持っています。

注意: 同一のホスト、ポートおよびデータ・ドメイン名を持つデータソースに異なる属性グループは構成できません。これらは単に同一のソース・データを異なるビューで表示したものにすぎず、一方のデータソースの属性グループに対して変更を行うと、他方のデータソースのグループが自動的に更新されます。
データソースを子データソースとして識別し、さらにその親も識別するには、次の設定をデータソース定義に追加します。
設定 説明
parentDataSource 親データソースのid

次に、子データソース用にbaseFunctions設定をフィルタ付きで構成します。

親および子のデータソースに対する問合せ状態の変更によるデフォルトの効果

デフォルトでは、子データソースの現在の問合せ状態は、親データソースの現在の問合せ状態に子データソースからのフィルタを加えたものです。たとえば、親データソースに1999のトランザクションのみが含まれるように絞り込んでいる場合は、子データソースには、1999 (親データソースの絞込み)の合衆国(子データソースのフィルタ)のトランザクションのみが含まれます。

データソースの問合せ状態に対する変更は、そのデータソースが属するファミリ階層全体に適用されます。
  • 子データソースの問合せ状態に対する変更は、親データソースに適用されます。

    たとえば、エンド・ユーザーが子データソースにバインドされているガイド付きナビゲーション・コンポーネントからの絞込みを選択すると、その親データソースにバインドされているコンポーネントもその絞込みで更新されます。

    親データソース自体が子データソースである場合は、その変更はその親にも適用されます。

    この処理は、親を持たないデータソースに到達するまで、それぞれの親に順に適用されます。

  • 親データソースの問合せ状態に対する変更は、その子すべてに適用されます。

    その子データソース自体に子がある場合は、その変更はその子にも適用されます。

    この処理は、親を持たないデータソースに到達するまで、それぞれの子に順に適用されます。

たとえば、次のデータソース階層を参照してください。

親、子および孫データソースの階層図
  • エンド・ユーザーがParent1に1999のトランザクションのみが表示されるように絞込みを実行した場合は、次のようになります。
    1. Child1およびChild2は、1999のトランザクションのみが表示されるように絞り込まれるとともに、それらの元のベース・フィルタでも絞込みされます。
    2. Child1に対する絞込みにより、Grandchild1は1999のトランザクションのみが表示されるように絞り込まれるとともに、その元のベース・フィルタとChild1のフィルタでも絞込みされます。
  • エンド・ユーザーがChild1にクレジット・カードのトランザクションのみが表示されるように絞込みを実行した場合は、次のようになります。
    1. Parent1およびGrandchild1は、クレジット・カードのトランザクションのみが表示されるように絞り込まれるとともに、それらの元のフィルタでも絞込みされます。
    2. Parent1に対する絞込みにより、Child2はクレジット・カードのトランザクションのみが表示されるように絞り込まれるとともに、その元のベース・フィルタでも絞込みされます。
  • エンド・ユーザーがGrandchild1にキャッシュ・トランザクションのみが表示されるように絞込みを実行した場合は、次のようになります。
    1. Child1は、キャッシュ・トランザクションのみが表示されるように絞り込まれるとともに、その元のベース・フィルタでも絞込みされます。
    2. Child1に対する絞込みにより、Parent1はキャッシュ・トランザクションのみが表示されるように絞り込まれるとともに、その元のフィルタでも絞込みされます。
    3. Parent1に対する絞込みにより、Child2はキャッシュ・トランザクションのみが表示されるように絞り込まれるとともに、その元のベース・フィルタでも絞込みされます。

データソースの選択的絞込みの構成

関連するデータソースがあるデータソースの場合、選択的絞込みを使用してデフォルトの絞込み動作を上書きできます。選択的絞込みを使用すると、関連するデータソースに対する絞込みが現在のデータソースに与える影響を制御できます。

最小の構成は、選択的絞込みの有効化です。選択的絞込みを有効化すると、関連するデータソースに対する絞込みは、その絞込みに使用した属性が両方のデータソースに存在する場合にのみ、現在のデータソースに影響します。

組み込む属性の選択に正規表現を使用するように選択的絞込みを構成できます。特定の属性を除外したり含めることもできます。

選択的絞込みを実装するには、selectiveRefinements設定をデータソース定義に追加します。selectiveRefinements設定では、次のパラメータを使用できます。

selectRefinementsパラメータ 説明
enabled 必須。選択的絞込みを有効化するかどうか。

trueに設定すると、関連するデータソースに対する絞込みは、その絞込みに使用した属性が両方のデータソースに存在する場合にのみ、現在のデータソースに適用されます。

falseに設定すると(デフォルト)、関連するデータソースのすべての絞込みが現在のデータソースに適用されます。

autoDetect 必須。絞込みに使用する属性を自動的に検出するかどうか。

trueに設定すると(デフォルト)、属性は自動的に検出されます。

また、autoDetectPatternを使用して、絞込みを適用する属性を検出するための正規表現を作成することもできます。

falseに設定すると、絞込みに使用される属性は、includedAttributesパラメータが提供した属性のみになります。

autoDetectPattern 関連するデータソースの絞込みの保持対象となる属性の決定に使用される正規表現。

たとえば、これを^Supplier.+に設定した場合は、属性キーがSupplierで始まる属性の絞込みのみを保持することを示しています。

excludedAttributes オプション。関連するデータソースの絞込みの無視対象となる属性のカンマ区切りリスト。

属性を指定する際は、属性キーを使用します。

たとえば、次の構成では、色および袖のタイプによる絞込みが除外されます。

 "selectiveRefinements":{
    "enabled":true,
    "excludedAttributes":["Color","Sleeve_Type"]
  }
includedAttributes オプション。絞込みの保持対象となる属性のカンマ区切りリスト。

属性を指定する際は、属性キーを使用します。

autoDetectがfalseの場合、ここに属性を指定しないと、Studioでは関連するデータソースの絞込みが適用されません。

autoDetectPatternを属性の検出に使用している場合は、ここで指定した属性が、自動的に検出された属性に加えて使用されます。

たとえば、次の構成では、価格と地域による絞込みを自動検出された属性に追加します。

 "selectiveRefinements":{
    "enabled":true,
    "autoDetectPattern":"Customer.+",
    "includedAttributes":["Price","Sales_Region"]
  }
Endeca Serverデータ・ドメインで属性が変更された場合は、その変更がキャッシュされた選択的絞込みの構成にただちに反映されない場合があります。選択的絞込みの構成を最新にしておくには、次のいずれかを実行します。
  • 構成を更新して、個々の包含属性および除外属性を編集します。
  • 属性が自動的に検出される場合は、データソース構成を手動で編集および保存します。実際に変更を行う必要はありません。「データ・ソース定義」ダイアログで「保存」をクリックすると、Studioにより組み込む属性が再計算されます。

子データソースの例

子データソースの次の例では、親データソースのIDはall-transactionsです。

この子データソースには、all-transactionsからのデータで、仕入先タイプがImporterのレコードのみが含まれるように絞込みされます。

この選択的絞込みでは、顧客割引を除く顧客関連属性が保持され、販売地域と販売員がその保持された絞込みに追加されることを示しています。

{
 "server":"server01.lab.acme.com",
 "port":"5555",
 "dataDomainName":"acmeDB"
 "name":"Importer Transactions"
 "parentDataSource":"all-transactions",
 "baseFunctions": [
  {"class":"com.endeca.portal.data.functions.DataSourceFilter",
   "filterString":"Supplier_Types='Importer'"
  }
 ]
 "selectiveRefinements":{
    "enabled":true,
    "autoDetect":true,
    "autoDetectPattern":"^Customer.+",
    "includedAttributes":["Sales_Region","Sales_Rep"],
    "excludedAttributes":["Customer_Discount"]
  }  
}